ubuntu 20.04 自动重启网络
问题:
笔记本安装有调试环境,通过wifi联网,另一台电脑远程登录笔记本进行调试。如果比较本网络断网,就无法调试了,需要人工重置网络。
解决:
自己写一个重置网络的脚本net-restart.sh,开机执行,每CHECK_INTERVAL秒检测网络,如果外网不通,就重启wifi。
步骤一:vim /etc/rc.local最后增加一行
/etc/net-restart.sh &
unbuntu开机后自动执行rc.local,所以在文件末尾执行我们自己的脚本。
步骤二:更新/etc/net-restart.sh文件
方法一:用nmcli命令检查外网
#!/bin/bash CHECK_INTERVAL=10 sleep 300 while [ true ];do state=`nmcli n c` if [[ $state != "full" ]];then nmcli r wifi on service network-manager restart echo "service network-manager restart" fi sleep $CHECK_INTERVAL done
方法二:用ping命令检测外网
#!/bin/bash CHECK_INTERVAL=10 function check_net_status() { ping -c 3 -W 5 $1 &> /dev/null if [ $? -eq 0 ] then return 0 else return -1 fi } sleep 300 while [ true ];do check_net_status www.baidu.com if [ $? -ne 0 ];then nmcli r wifi on service network-manager restart echo "service network-manager restart" fi sleep $CHECK_INTERVAL done
nmcli命令说明:
1)nmcli:network manager command line
2)nmcli n c:即nmcli networking connectivity
返回值full(可上网),limited(联网,但无法上网)、portal(联网,但需要登录认证才能上网)、none(未联网)、unknown。
3)nmcli r wifi on:即nmcli radio wifi on,打开网络
nmcli参数比较多,可通过man nmcli获取详细信息。
上一篇:
5款热门的远程控制软件,让你事半功倍
下一篇:
什么是软件测试及测试内容?