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

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
YeLee
论坛版主
帖子: 26399
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
送出感谢: 25 次
接收感谢: 306 次
联系:

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

#1

帖子 YeLee » 2021-04-16 19:29

家里的树莓派网络不太稳定,有时候会突然断网,写了个脚本解一下:

代码: 全选

#!/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
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
回复

回到 “Shell脚本”