添加OpenVPN客户端连接到cron

我写了简单的服务器客户端OpenVPNconfiguration文件:

为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项目是否工作? 在客户端网站上,当我用ifconfig检查它时,我没有看到任何新的tun接口。 有任何想法吗?

更新

您的脚本必须使用configuration文件的完整path,因为cron守护程序不会以您的用户身份运行(也不会从您的主目录运行)。

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

还要确保你正在编辑root的cronjob,因为你需要root来连接到openvpnnetworking

更新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 

老答案

我build议在末尾放置&符号(&),以确保它在后台运行:

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

这样,你可以检查是否正在运行,或者如果需要用ps ax | grep 'run.sh'杀死它 ps ax | grep 'run.sh'

另外,如果您在run.sh脚本中使用$ HOME或相对path等任何variables,则它将不起作用,因为cron是作为单独的用户运行的,通常无法访问大多数环境variables。