check_vpn.sh 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/bin/sh
  2. # Configuration
  3. LOG_FILE="/var/log/vpn_check.log"
  4. VPN_SERVICE="vpnc@fb"
  5. ROUTER_IP="192.168.178.1"
  6. VPN_CHECK_URL="https://tbsgl.xyz/vpn"
  7. RESTART_CHECK_URL="https://tbsgl.xyz/restart"
  8. # Log function
  9. log() {
  10. now=$(date)
  11. echo "${now} - $1" | tee -a ${LOG_FILE}
  12. }
  13. # Check URL function
  14. check_url() {
  15. curl -sI $1 | grep "HTTP/2 200" > /dev/null
  16. return $?
  17. }
  18. # Check VPN Connectivity
  19. check_vpn_connectivity() {
  20. ping -c 1 ${ROUTER_IP} | grep "64 bytes from" > /dev/null
  21. if [ $? != 0 ]; then
  22. systemctl restart ${VPN_SERVICE} > /dev/null
  23. log "Ping not successful - Restarting VPN"
  24. else
  25. log "Ping reached router, doing nothing"
  26. fi
  27. }
  28. # Main
  29. log "Running Check"
  30. # Check if VPN-On Flag is set
  31. if check_url ${VPN_CHECK_URL}; then
  32. check_vpn_connectivity
  33. else
  34. systemctl stop ${VPN_SERVICE}
  35. log "VPN Flag seems to be disabled or no Internet, stopping service"
  36. fi
  37. # Additional Functionality: Check for Restart Condition
  38. if check_url ${RESTART_CHECK_URL}; then
  39. log "Restart condition met - Restarting device"
  40. reboot now
  41. fi