树莓派保持网络连接shell脚本
源:http://www.jianshu.com/p/96aa26d165c3 (我的简书文章)
故事背景
树莓派3b现在有了板载无线网卡,可以很方便的连接到wifi。但是无线路由器不能保证永远正常工作,由于各种原因会重启路由。这个时候,raspberry3b就会有一定概率断开网络连接。系统级功能比如像手机一样有网就连,断网后自动重连的功能目前没有能力实现。所以就想搞一个脚本检查网络连接状态,如果没有网络重启一下。
shell脚本
#! /bin/bash
#检测网络连接
log=/root/network.log
#判断输出日志文件是否存在
if [ ! -f ${log} ]
then
touch ${log}
fi
ping -c 192.168.1.1 > /dev/null >&
if [ $? -eq ];then
#echo `date` 检测网络正常 >> ${log}
else
echo `date` 检测网络异常 >> ${log}
reboot
fi
这个脚本基本上是ping路由地址(192.168.1.1)来判断无线的连接状态,$?是上一条命令执行的return值。ping通返回0,ping不通返回不是0。当ping不通的时候写下日志,然后重启系统(为什么不重启网络?我是真的不在家的时间有点长,所以没有胆量尝试)。
定时运行
起初想用nodejs脚本定时运行,自己都觉得小题大作了。转而寻找用shell脚本实现的思路。查资料后发现linux系统本身有一个cron服务(俗称定时任务)。
修改/etc/crontab文件,添加一行
*/ * * * * root bash /root/network.sh
当系统时间的分钟整除5的时候就会以root身份调用一个后面的bash /root/network.sh命令。
树莓派保持网络连接shell脚本的更多相关文章
- 【树莓派】树莓派移动网络连接(配置4G网卡)
1.识别上网卡 使用命令lsusb,如果能够识别则可以继续往下. 2.安装网卡驱动程序 上网卡一般都会带有2个功能,一个是虚拟光驱,用来安装驱动程序:另一个是进行网络连接的modem. 在Linux下 ...
- kali-通过获取路由器pin码套取无线网络密码shell脚本
直接上脚本吧, 我做个笔记. #************************************************************************* # > Fil ...
- 网络分析shell脚本(实时流量+连接统计)
介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下.脚本运行效果截图: 此脚本包含的功能有: 1.实时监控任意网卡的流量 2.统计10秒内平均流量 3.统计 ...
- 通信统计接口字段填充内容shell脚本
现在通信行业上班,最麻烦的就是计算各个协议接口字段填充的内容是否正确.经历了小白似的一个个字段统计在到单个接口所有字段统计,然后到现在的多个接口一次统计.在大大节省了时间的同时,让自己有更充足的时间来 ...
- 用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql
1:创建shell脚本 touch sqoop_options.sh chmod 777 sqoop_options.sh 编辑文件 特地将执行map的个数设置为变量 测试 可以java代码传参数 ...
- 使用ping网络工具编写Shell脚本程序实现网络连接故障初步排查
在学习ping命令的时候,突发奇想:为何不使用ping命令对网络连接故障进行排查? 具体思路: 1. ping 127.0.0.1 (虚拟网卡地址)以检查主机的TCP/IP协议栈是否正常. 2. p ...
- shell脚本检测网络是否畅通
shell初始化安装脚本执行时,需从网络上安装一些rpm包,所有需要先检测网络的畅通性, 代码 #检测网络链接&&ftp上传数据 function networkAndFtp() { ...
- 在 shell 脚本获取 ip、数字转换等网络操作
在 shell 脚本获取 ip.数字转换等网络操作 ip 和数字的相互转换 ip转换为数字 :: function ip2num() { local ip=$1 local a=$(echo $ip ...
- linux下实现shell脚本自动连接mongodb数据库并创建索引
在linux下创建shell脚本
随机推荐
- cf744
Codeforces Round #385 (Div. 1) <br > A.Hongcow Builds A Nation 贪心. 显然就是凑成一个最大的块即可 那么首先并查集处理已经确 ...
- 554 DT:SPM 163 smtp5,D9GowAD3RPYqSvxZjpMaAA--.4817S2 1509706293 坑爹的防垃圾邮件机制
代码如下 package ssmtest; import java.io.File;import java.io.UnsupportedEncodingException;import java.ut ...
- hibernate session缓存
Session 概述 Session 接口是 Hibernate 向应用程序提供的操纵数据库的最基本的接口, 它提供了基本的保存, 更新, 删除和载入 Java 对象的方法. Session 具有一个 ...
- apollo 消息分发源代码分析
1.MessageDispatch消息分发信息 public static final byte DATA_STRUCTURE_TYPE = CommandTypes.MESSAGE_DISPATCH ...
- PADS的历史版本
1986年:PADS PCB,DOS操作系统 1989年:PADS Logic,DOS操作系统 1990年:PADS 2000,DOS操作系统 1993年:PADS Perform,DOS和Windo ...
- OpenCV load 运行出错 cv::Exception 出错
今天在使用OpenCV的load函数时,出现错误,代码如下: cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 ); ...
- Windows 10遭遇百万粉丝“围攻”(挑刺)
9月30日,微软公布Win 10技术预览版,征求反馈意见. 出人意料的是.截止10月14日.在短短两周内,竟有百万粉丝下载试用(所谓"測试"),反馈了20万条改动意见.对此,微软真 ...
- UVA 10042 Smith Numbers(数论)
Smith Numbers Background While skimming his phone directory in 1982, Albert Wilansky, a mathematicia ...
- php中屏蔽date的错误
php中添加 date_default_timezone_set('asia/shanghai'); 可以屏蔽 <?php echo date('Y-m-d',$row3['time']); ...
- Webkit JNI
WebCoreFrameBridge.cpp BrowserFrame通过jni传下来的调用都会调用到WebCoreFrameBridge.cpp中的对应函数中,其他webkit的模块想回调信息给Br ...