离线时重新启动路由器

时间:2018-06-17 02:51:47

标签: bash cron wget

奇怪的是,我奇怪的互联网连接每天都在线下,但我只需要重新启动路由器,它一切都会好起来的。

所以我决定编写脚本,一旦它离线就重启路由器。

ping -c是我想到的第一个想法。

在思考和研究之后,我想出了这个:

wget -q --spider http://google.com
if [ $? -eq 0 ]; then
    echo "Online"
    # do nothing
else
    echo "Offline"
    # retry for the next 2 minutes
    # and when still offline
    # curl command to restart router
fi

有了2分钟,它可以补偿路由器重启的时间,问题是我如何在接下来的2分钟内重试。

将其保存在一个文件中,并且每隔7分钟作为一个cron运行,我认为可以为我做这个工作。

1 个答案:

答案 0 :(得分:-1)

我可能有一个答案

#!/bin/bash

retries=0

detect_network () {
  wget -q --spider http://google.com
  if [ $? -eq 0 ]; then
    echo "Online"
    retries=0
  else
    if [ "$retries" -eq 120 ]; then
      echo "curl now"
      #
    else
      echo "Offline"
      ((retries=retries+1))
      sleep 1
      detect_network
    fi
  fi
}

detect_network