树莓派一直连着宿舍wifi,今天重启路由器后发现树莓派居然没有自动连上wifi!害得我又用网线连了一次。。。
为了防止断网,我搞了这么一个脚本,很简单,10s内(时间够长了吧)检测到百度 ping 不通时,重启无线网卡,如果还是不行则重启系统
#! /bin/bash
##检测wifi网络连接
log=/root/network/wifi.log
##判断输出日志文件是否存在
if [[ ! -f ${log} ]]; then
touch ${log}
fi
##检测ssh是否连接
ss | grep "ssh"
if [[ $? -eq 0 ]]; then
echo `date` 检测到正在使用ssh,跳过... >> ${log}
else
##ping百度
ping_count() {
count=0
timeout 10 ping www.baidu.com | while read LINE; do
{
if [[ "${LINE}" =~ "64 bytes from" ]]; then
let "count = $count + 1"
echo "export count=$count"
fi
}
done
echo $count
}
if [[ $(ping_count) < 1 ]]; then
echo `date` 检测到wifi网络异常,正在重启wifi... >> ${log}
systemctl restart [email protected]
sleep 10
if [[ $(ping_count) < 1 ]]; then
echo `date` 重启wifi后网络异常,正在重启系统... >> ${log}
reboot
else
echo `date` 重启wifi后网络正常 >> ${log}
fi
else
echo `date` wifi网络正常 >> ${log}
fi
fi
保存上方脚本到 /root/network/wifi_check.sh
日志文件在 /root/network/wifi.log
中
之后在 crontab
root用户配置文件 /var/spool/cron/root
中添加
##每小时分钟数整除5的时候运行该脚本
*/5 * * * * sh /root/network/wifi_check.sh
##每月一号删除日志
0 0 1 * * rm /root/network/wifi.log
恭喜,你成功屏蔽了广告 *这是一则由 Google AdSense 自动推荐的广告,不代表本站立场
Comments | 3 条评论
博主 Spirit
使用定时脚本有弊端,比如你正在使用pacman,最后一步会卡一会儿,这时网络无响应,而脚本检测到就会重启 ,我又加了个判断是否正在使用ssh的条件,优化了下
博主 repostone
网站好花俏啊。
博主 Spirit
@repostone 哈哈,开心最重要
╮( ̄▽ ̄)╭