Назад | Перейти на главную страницу

Добавление клиентского подключения OpenVPN к cron

Я написал простые файлы конфигурации сервер-клиент OpenVPN:

server.conf

dev tun0
ifconfig 10.8.0.1 10.8.0.2

client.conf

dev tun0
ifconfig 10.8.0.2 10.8.0.1
remote 192.168.0.123

который в основном представляет собой туннель OpenVPN с открытым текстом - пока для меня это нормально, я просто выучу его из основ, суть в том, что это работает! :)

Я также написал крошечный простой сценарий bash для автоматического запуска клиента:

#!/bin/bash
openvpn --config client.conf

и сохранен как run.sh. Затем захотелось добавить его в cron чтобы позволить клиенту подключаться к серверу vpn в то время, когда я хочу.

Я сделал:

crontab -e
11 5 * * * /home/mirx/run.sh

но я не вижу подключенного клиента на сервере - работает моя запись в cron или нет? На сайте клиента я не вижу новых tun интерфейс, когда я проверяю его с помощью ifconfig. Любые идеи?

Обновить

Ваш скрипт должен использовать полный путь к файлу конфигурации, поскольку демон cron не запускается от имени вашего пользователя (и не из вашего домашнего каталога).

#!/bin/bash
openvpn --config /home/mirx/client.conf

Также убедитесь, что вы редактируете cronjob root, поскольку вам нужен root для подключения к сети openvpn

Обновление 2

Также кажется, что у вас может быть смешанный синтаксис кукурузы, используйте этот заголовок, чтобы помочь вам настроить его:

#minute (0-59),
#|      hour (0-23),
#|      |       day of the month (1-31),
#|      |       |       month of the year (1-12),
#|      |       |       |       day of the week (0-6 with 0=Sunday).
#|      |       |       |       |       commands

Старый ответ

Я рекомендую поставить амперсанд (&) в конце, чтобы убедиться, что он работает в фоновом режиме:

11 5 * * * /home/mirx/run.sh &

Таким образом вы можете проверить, запущен ли он, или убить его, если необходимо, с помощью ps ax | grep 'run.sh'

Кроме того, если вы используете какие-либо переменные, такие как $ HOME или относительные пути в вашем run.sh script он не будет работать, поскольку cron запускается от имени отдельного пользователя, который обычно не имеет доступа к большинству переменных вашей среды.