Сам себе отвечаю:
1. Заходим на NAS по ssh, под root. Как это сделать написано тут: https://www.synology.com/ru-ru/knowledgebas..._via_SSH_Telnet
Лучше, если предварительно Вы установите "Midnight Commander" из пакетов.
3. Создаём каталог /volume1/scripts/.
2. Идём в /usr/syno/etc/synovpnclient/ и в этот момент останавливаем и снова запускаем своё соединение VPN из вэб-админки. В указанной директории должен появиться файл "vpnc_connecting". Он будет существовать, пока не установится соединение. Содержит всего 3 строки и если Вам не лень их набирать и искать ID своего VPN-соединения, то можете пропустить этот пункт. Вам нужно будет найти ID своего VPN-соединения в файле /usr/syno/etc/synovpnclient/vpnc_last_connect или в поддерикториях /usr/syno/etc/synovpnclient/. Копируем файл "vpnc_connecting" в /volume1/scripts/.
3. Содержимое файла "vpnc_connecting":
conf_id=o1481981647
conf_name=MyVpnConnection
proto=openvpn
Здесь обратите внимание, что ID, имя соединения и его тип (vpn, openvpn и т.д.) - должны быть Вашими.
4. Теперь идём в админку - Панель управления - Планировщик заданий - Создать - Запланированная задача - Скрипт, заданный пользователем.
Здесь:
а) Вкладка ОСНОВНОЕ.
- задача: Имя задачи.
- пользователь: root
б) Вкладка РАСПИСАНИЕ
- Выполнять в следующие дни: ежедневно
- время первого выполнения: 00:00
- частота: каждые 5 минут
- время последнего выполнения: 23:55
в) Вкладка НАСТРОЙКИ ЗАДАЧ
Здесь в поле "скрипт заданный пользователем", вставить этот код:
if ping -c 4 "IP, который доступен только когда поднят ваш VPN тоннель, без кавычек" >> /dev/null
then
exit 0
else
cp /volume1/scripts/vpnc_connecting /usr/syno/etc/synovpnclient/
/usr/syno/bin/synovpnc connect --id=o1481981647
fi
Обратите внимание, что в предпоследней строке скрипта так же нужно указать ID вашего соединения.
Скрипт проверяет доступность указанного хоста, а в случае его недоступности копирует файл с настройками VPN и запускает соединение, что можно наблюдать, если перейти в Панели управления в Сеть - Сетевой интерфейс. Если хост доступен - скрипт не делает ничего. Это важно, т.к. выполнение попыток соединения при уже существующем соединении VPN может привести к серьёзным коллизиям.
Команда /usr/syno/bin/synovpnc имеет разнообразные опции и их можно посмотреть, запустив её в консоли так: /usr/syno/bin/synovpnc --help. Из мануала следует, что можно запустить /usr/syno/bin/synovpnc с опциями "retry=" и "interval=". Просто чтобы Вы знали. Но я это не проверял, т.к. у меня заработало и так, как выше написал.
После того как соединение установится - файл /usr/syno/etc/synovpnclient/vpnc_connecting удалится системой автоматически.
Перед запуском задания, ради проверки, не забудьте остановить своё соединение VPN, иначе ничего не произойдёт.
Частоту перезапуска задания можно выставить разную, но я бы не рекомендовал делать её менее 5-ти минут.
Если У вас при запуске задания ничего не происходит - проверьте правильность синтаксиса скрипта и соответствие директорий в нём. Лично у меня скрипт сразу не заработал, поскольку при копипасте некоторые символы заменились на некорректные.
По материалам:
https://mickderksen.wordpress.com/2016/06/0...on-on-synology/
https://debian.pro/176