24 hours Restart Script + Cronjob with every minute connection check
Hi,
with this Cronjob + myScript + myOpenvpn commands (from the ovpn-file other topic link below) you can use your VPN-Connection from your VPN-Provider all the time and change the location automatically how often you like!
It’s very simple: your router will check if the connection is lost and reconnect automatically if there is no connection with the ovpn-file. Some VPN-Provider don’t allow a permanent connection over 24 hours, therefor this cronjob can handle this job.
-> Plus optional: cronjob router reconnect/restart at manual times, if you want to do this too, for whatever reason.
Below you find two scripts in the next post: A script for listening and restart to stay the day only (so therefore no ovpn-file change needed) and a script for setting a time to make a manual restart ( if you don’t want to use this cronjob) -> Both sripts won’t work with my turris, maybe there is a mistake and you find it
Let’s start:
-
If you are a new vpn-user, you can check my tutorial how to connect to your vpn provider with ovpn-file: HowToOpenVPNClient
-
Login in Luci and than go to: System->Software and search for nano and install it
-
Go into Terminal (Linux) and write:
ssh root@192.168.1.1
->hit enter and use your forris/luci passwort
- Write this and hit enter:
nano /usr/bin/vpn_reconnect
- Copy/Paste this script:
#!/bin/sh
# Check vpn-tunnel "tun0" and ping cz.nic if internet connection work
if [ "$(ping -I tun0 -q -c 1 -W 1 193.17.47.1 | grep '100% packet loss' )" != "" ]; then
logger -t VPN_Reconnect VPN-Tunnel "tun0" has got no internet connectionection -> restart it
/etc/init.d/openvpn stop
sleep 3
/etc/init.d/openvpn start
else
logger -t VPN_Reconnect VPN-Tunnel "tun0" is working with internet connection
fi
and then do Strg + o than Enter than Strg + x
Then:
chmod +x /usr/bin/vpn_reconnect
- To set up a cronjob, use this first in terminal:
crontab -e
- Write this code in it (Check every minute for vpn-connection)
*/1 * * * * /usr/bin/vpn_reconnect
- Optional: Add this code for manual restart (My Example: Restart of vpn everyday at 3:30am)
30 3 * * * /etc/init.d/openvpn stop ; /etc/init.d/openvpn start
- If you want you can add a second line to restart your router 1 time in the year
Or more often, do what you want!
* * 1 1 * sleep 70 && touch /etc/banner && reboot
- You can set your times by yourself, here you see the timetable:
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
- A few other commands, which may or may not be necessary to ensure that cron was running:
/etc/init.d/cron start
/etc/init.d/cron enable
/etc/init.d/cron restart
-
You can actually interact with cron through the web panel as well and check if the settings are saved > System > Scheduled tasks and check if the script is working in the system log: Status->System Log
-
With “Remote-Random” at stop & start of openvpn your router will choose a random remote server from your ovpn-file like you can see here: HowToOpenVPNClient
-> With this two tutorials now your connection should be stable all the time and with location change and router restart like you want it. If not, check the post below! Don’t forget to enable openvpn on router restart and only allow vpn internet access like in the other script!
Have fun