源: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脚本的更多相关文章

  1. 【树莓派】树莓派移动网络连接(配置4G网卡)

    1.识别上网卡 使用命令lsusb,如果能够识别则可以继续往下. 2.安装网卡驱动程序 上网卡一般都会带有2个功能,一个是虚拟光驱,用来安装驱动程序:另一个是进行网络连接的modem. 在Linux下 ...

  2. kali-通过获取路由器pin码套取无线网络密码shell脚本

    直接上脚本吧, 我做个笔记. #************************************************************************* # > Fil ...

  3. 网络分析shell脚本(实时流量+连接统计)

    介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下.脚本运行效果截图: 此脚本包含的功能有: 1.实时监控任意网卡的流量 2.统计10秒内平均流量 3.统计 ...

  4. 通信统计接口字段填充内容shell脚本

    现在通信行业上班,最麻烦的就是计算各个协议接口字段填充的内容是否正确.经历了小白似的一个个字段统计在到单个接口所有字段统计,然后到现在的多个接口一次统计.在大大节省了时间的同时,让自己有更充足的时间来 ...

  5. 用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql

    1:创建shell脚本 touch sqoop_options.sh chmod 777 sqoop_options.sh 编辑文件  特地将执行map的个数设置为变量  测试 可以java代码传参数 ...

  6. 使用ping网络工具编写Shell脚本程序实现网络连接故障初步排查

    在学习ping命令的时候,突发奇想:为何不使用ping命令对网络连接故障进行排查? 具体思路: 1. ping  127.0.0.1 (虚拟网卡地址)以检查主机的TCP/IP协议栈是否正常. 2. p ...

  7. shell脚本检测网络是否畅通

    shell初始化安装脚本执行时,需从网络上安装一些rpm包,所有需要先检测网络的畅通性, 代码 #检测网络链接&&ftp上传数据 function networkAndFtp() { ...

  8. 在 shell 脚本获取 ip、数字转换等网络操作

    在 shell 脚本获取 ip.数字转换等网络操作 ip 和数字的相互转换 ip转换为数字 :: function ip2num() { local ip=$1 local a=$(echo $ip ...

  9. linux下实现shell脚本自动连接mongodb数据库并创建索引

    在linux下创建shell脚本

随机推荐

  1. Codeforces Gym 100431A Achromatic Number 欧拉回路

    原题链接:http://codeforces.com/gym/100431/attachments/download/2421/20092010-winter-petrozavodsk-camp-an ...

  2. jQuery全选全不选

    $("[name='goods']").prop("checked", this.checked);

  3. jsonp _____跨域请求实现

    请求如下: $.ajax({ type: "GET", async:false, url: "http://127.0.0.1:8080/Cross-site-reque ...

  4. Android(java方法)上实现mp4的分割和拼接 (二)

    这节谈一下如何在android上实现mp4文件的高效率切割. 业务需求举例:把一段2分钟的mp4文件切割出00:42 至 01:16这段时间的视频,要求足够短的执行时间和尽量少的误差. 分析:mp4P ...

  5. LeetCode 205 Isomorphic Strings(同构的字符串)(string、vector、map)(*)

    翻译 给定两个字符串s和t,决定它们是否是同构的. 假设s中的元素被替换能够得到t,那么称这两个字符串是同构的. 在用一个字符串的元素替换还有一个字符串的元素的过程中.所有字符的顺序必须保留. 没有两 ...

  6. 微信小程序日期定位弹出框遮挡问题

    只需要用bindtap绑定一个点击后的操作(隐藏键盘): wx.hideKeyboard()

  7. HDOJ题目2089 不要62(数位DP)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  8. 在CentOS 7上构建RAID5、LVM和SAMBAserver(5)——架设SAMBAserver

    在CentOS 7上构建RAID5.LVM和SAMBAserver(5)--架设SAMBAserver 6. 架设SAMBAserver 6.1. 预备 本节的任务是配置SAMBA服务,共享/home ...

  9. 《UNIX-Shell编程24学时教程》读书笔记Chap3,4 文件,目录操作

    Chap3 文件操作   P28 在这章中,要着重记住一些常用的选项,要有使用正则表达式的思维,能更快达到目的.----@im天行 3.1 列文件名 .profile  sh的初始化脚本: .kshr ...

  10. 整理自Git文件夹下资料及man手册(不包括书籍)

    $ git commit -awhich will automatically notice any modified (but not new) files, add them to the ind ...