分页: 1 / 1

小脚本解决树莓派网络重连问题

发表于 : 2021-04-16 19:29
YeLee
家里的树莓派网络不太稳定,有时候会突然断网,写了个脚本解一下:

代码: 全选

#!/bin/bash

sleep 10
Gateway=172.16.1.254
ping -c1 -w 100 ${Gateway} > /dev/null
#能ping通网关则直接退出
[ "$?" -eq 0 ] && exit

#ping不通网关时,则重启网络服务
/etc/init.d/networking restart
echo $(date '+%Y-%m-%d %H:%M')' 重启网络' >> /var/log/net_restart.log

#等待10秒钟,待网络重启完成
sleep 10

#获取机器启动时间
#uptime=$(date -d "$(uptime -s)" +%s)
#interval=$(($(date +%s)-$uptime))
interval=$(awk '{printf("%.0f", $1)}' /proc/uptime)

#启动超过6小时则重启,避免重复启动
[ $interval -lt 21600 ] && exit

#网络错误重启服务器
ping -c1 -w 100 ${Gateway} > /dev/null
[ "$?" -ne 0 ] && reboot
echo $(date '+%Y-%m-%d %H:%M')' 重启设备' >> /var/log/net_restart.log
把脚本保存好,然后运行一下crontab -e,在文件未尾加上这一行:
每隔10分钟运行一次脚本:

代码: 全选

0,10,20,30,40,50 * * * * /etc/network/if-post-down.d/net_restart.sh