树莓派 wifi断线 检测重启脚本

文章介绍了如何创建一个名为net_restart.sh的脚本,用于检测网络连接状况,如果网络不畅则尝试重启。脚本通过访问特定URL检查HTTP状态码,设置定时任务每5分钟执行一次,并使用sudo进行权限管理和重启操作。
摘要由CSDN通过智能技术生成

1、在/etc/network/if-down.d/目录下面新建net_restart.sh文件,以下是代码

#!/bin/bash
#定义几个IP供访问,如果访问失败,返回一般是000
urls=("www.baidu.com" "192.168.3.1" "192.168.0.1")
http_code=("200" "301" "302" "404")
count=${#urls[*]}
connected=0
 
echo "start to check net!"
echo "bash file in /etc/network/if-down.d/net_restart.sh"
 
#函数,每个网站访问一下看结果,有一个能通就行
function check_linkstatus {
  for ((i=0; i < $count; i++));
  do
     url=${urls[i]}
     echo $url
     #result=$(curl -o /dev/null -s -m 10 -w %{http_code} $url)
     result=$(curl -m 10 -o /dev/null -s -w %{http_code} $url)
     for flag in ${http_code};
     do
       if [ $flag -eq $result ];then
          connected=$(expr $connected + 1)
          echo $url" net ok!"
        else
                write_log $url" net error!"
       fi
     done
  done
}
 
# 函数 , 写个log
function write_log ( ) {
  logfilename=/home/pi/networklog.txt
  date>>$logfilename
  echo $1>>$logfilename
}
 
check_linkstatus
 
#if net is down then restart or reboot
if [ $connected -eq 0 ];then
    echo "network is not very well!"
    echo "restart net!"
    write_log "restart net!"
    #这个restart好像没用,会报错,但是wifi down/up一下也可以
    #sudo /etc/init.d/networking restart
    sudo ip link set wlan0 down
    sudo ip link set wlan0 up
    #sudo /sbin/ifup eth0
    connected=0
    # 等一会儿看效果,再测一次。
    sleep 10
    sudo ip link set wlan0 up
    sleep 10
    check_linkstatus
     # 如果还是不行,重启
    if [ $connected -eq 0 ];then
         write_log "reboot!"
         echo $cur_date reboot
         sudo shutdown -r now
               exit 0
    else
         echo $cur_date restart wlan0 ok!
         exit 0
    fi
fi

2、添加权限:sudo chmod +x /etc/network/if-down.d/net_restart.sh

3、添加定时任务检测:sudo crontab -e 在文件尾添加,5分钟检测一次网络:
*/5 * * * * /etc/network/if-down.d/net_restart.sh

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值