Я написал простые файлы конфигурации сервер-клиент 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 запускается от имени отдельного пользователя, который обычно не имеет доступа к большинству переменных вашей среды.