Тема: запуск vpn (IPsec) в crontab
Команда-one-liner для запуску вручну аби перевірити статус з'єднання vpn і перезапустити, якщо з'єднання ще не встановлено:
/usr/sbin/ipsec status | /bin/grep -q 'ESTABLISHED' || /usr/sbin/ipsec restart
(працює коректно)
Тепер те саме але в crontab, пробую різні варіанти:
# запуск щохвилини
* * * * * /usr/sbin/ipsec status | /bin/grep -q 'ESTABLISHED' || /usr/sbin/ipsec restart
# запуск при старті інстансу
@reboot /usr/sbin/ipsec restart
# запуск при старті інстансу з паузою одна хвилина
@reboot /bin/sleep 60 && /usr/sbin/ipsec status | /bin/grep -q 'ESTABLISHED' || /usr/sbin/ipsec restart
ніфіга не працює, поки не запущу вручну команду вказану на початку.
Well, That's Fascinating.
Як перевіряю що не працює:
/usr/sbin/ipsec status
[порожня відповідь]
Як повинно виглядати коли успішно:
/usr/sbin/ipsec status
Security Associations (1 up, 0 connecting):
myvpn[1]: ESTABLISHED 15 seconds ago, 172.18.0.3[172.18.0.3]...REMOTE_IP_ADDRESS[REMOTE_IP_ADDRESS]
myvpn{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: cd0b3ccc_i f8833716_o
myvpn{1}: 172.18.0.0/16 === 192.168.238.0/24
(REMOTE_IP_ADDRESS це плейсхолдер)
Буду копати далі. Хто знає відгадку, пишіть.
Upd: користувач в якому запис crontab той самий, під яким я запускаю команду вручну.