Поиск каталогов и объединение файлов

  • Использовать полный путь в команде set
  • запустить screenв автономном режиме
  • используйте конструкцию case... esacдля создания сценария запуска/остановки.
  • Может быть, что-то вроде этого:

    #!/bin/bash
    
    start(){
      status # Print IP before connection
      set -- /etc/openvpn/ovpn_tcp/*.nordvpn.com.tcp.ovpn
      shift $(( RANDOM % $# ))
      screen -S vpn -dm openvpn "$1" # connect
      sleep 5 # wait for connection
      status # Print IP after connection
    }
    stop(){
      screen -S vpn -X quit
      pkill -f ovpn
    }
    status(){
      printf 'IP: %s\n' "$(curl -s ifconfig.co)"
    }
    
    case "$1" in
    start)
        if screen -ls | grep -w vpn; then
          echo "Vpn already connected";
          status
        else
          start
        fi
        ;;
    stop)
        stop
        ;;
    *)
        status
        ;;
    esac
    

    , а затем вы можете добавить это как псевдоним:

    alias vpn='bash /etc/openvpn/ovpn_tcp/go'
    

    Использование:

    # Start connection
    vpn start
    
    # Stop connection
    vpn stop
    
    # get status
    vpn
    

    В качестве альтернативы псевдониму вы можете поместить скрипт в свой ~/bin, сделать его исполняемым и добавить этот каталог в свой $PATH.

0
25.07.2021, 02:11
0 ответов

Теги

Похожие вопросы