Я пытался запустить скрипт при запуске, но не смог.
кронтаб
@reboot /bin/sleep 8s && /bin/bash /home/user/reconnect.sh > /home/user/reconnect.log 2>&1
Скрипт работает нормально, если я запускаю его вручную.
#!/бин/баш
# Если запущен как root, то перезапустите как пользователь "user":
если [ "$(id -u)" -eq 0 ]; тогда
exec sudo -H -u пользователь $0 "$@"
echo "Это никогда не достигается.";
фи
echo "Это выполняется от имени пользователя $(id -un)";
пока [ "правда" ]
делать
VPNCON=$(/bin/nmcli con | /bin/grep PureVPN_PPTP | /bin/cut -f18 -d "")
если [[ $VPNCON != ens3 ]]; тогда
/bin/echo "Отключено, попытка повторного подключения..."
(/bin/sleep 1s && /bin/nmcli con up uuid 1dfcb9f6-1b90-3d92-9f8b-106dc35da0f4)
elif IP=$(ifconfig ppp0 | awk '/inet/{print $2; exit}')
(/бин/сон 5с)
[ "$IP" != "xxx.xxxx.xxx.xxx" ]; тогда
/bin/echo "неверный IP-адрес: $IP"
(/bin/sleep 1s && /bin/nmcli con down uuid 1dfcb9f6-1b90-3d92-9f8b-106dc35da0f4 && /bin/sleep 2s && /bin/nmcli con up uuid 1dfcb9f6-1b90-3d92-9f8b-106dc35da0f4)
еще
/bin/echo "Уже подключено!"
фи
/бен/сон 30
сделано
С момента первого поста я немного поработал над сценарием. Он отлично работает, выполняется вручную.
При выполнении кроном от имени пользователя я получаю следующую ошибку:
Это работает как пользователь
Отключился, пытаюсь подключиться...
Ошибка: не удалось активировать соединение: нет прав для управления сетью.
Почему-то пользователь с cron не имеет таких же прав, как на себя. Проблема в том, что при запуске от имени root он также терпит неудачу. Учетные данные для vpn хранятся в наборе ключей пользователей, поэтому root не может установить соединение: -/