订阅趣无尽微信公众号

树莓派(Raspberry Pi)USB无线网卡自动连接

Raspberry Pi 使用USB无线网卡的时候不会因为路由重启而掉线。

#!/bin/bash
while true ; do
   if ifconfig wlan0 | grep -q "inet addr:" ; then
      sleep 60
   else
      echo "Network connection down! Attempting reconnection."
      ifup --force wlan0
      sleep 10
   fi
done
------邪恶的分割线-----
#!/bin/bash
if ifconfig wlan0 | grep -q "inet addr:" ; then
      exit
   else
      echo "Network connection down! Attempting reconnection."
      ifup --force wlan0
   fi
#crontab -e
#*/10 * * * * bash /home/network-monitor.sh #每十分钟执行一次

将代码复制到你的根目录中保存为network-monitor.sh然后运行命令。
sudo chmod +x ./network-monitor.sh
把它设置为可执行文件,使用命令可在后台运行。
sudo ./network-monitor.sh &
它会每60秒检查,如果你的无线网络具有网络连接。如果它发现它没有网络地址将尝试强制重新连接并继续这样执行,直到重新建立连接。如果你想阻止它在后台运行,首先使用以下命令.
fg
将迫使它为前台运行,然后你可以使用ctrl-c停止.
测试了它几个方面。
首先关闭我的WiFi接入点,该脚本没有检测到网络连接并开始试图强迫一个连接。几分钟后,重新建立连接供电接入点回来后。
另一个试验,我删除了MAC地址从地址列表中允许接入点的MAC地址过滤。网络连接了下来,重新启用的MAC地址和它一、两分钟后回来了。

via http://49mm.com/archives/category/raspi/page/2

本文来自:树莓派实验室
链接地址:http://shumeipai.nxez.com/2015/04/23/raspberry-pi-usb-wireless-adapter-to-connect-automatically.html

5 Responses

  1. Bob Wolfe 2015年4月30日 / 08:56

    默认的网络脚本也是会自动重连的。

  2. haven200 2015年6月6日 / 13:36

    最新版的raspberry系统(2015-05-05),有时候管用有时候不管用,不知道为什么

  3. phpdragon 2015年8月29日 / 13:01

    #!/bin/bash
    while true ; do
    if ifconfig wlan0 | grep -q “inet addr:” ; then
    sleep 600
    else
    echo “Network connection down! Attempting reconnection.”
    ifup –force wlan0
    sleep 10
    fi
    done
    #vi /etc/rc.local
    #/usr/bin/sudo /home/network-monitor.sh & #每十分钟执行一次

    —–另一种方法,亲测无效(可能是环境配置问题)——

    #!/bin/bash
    if ifconfig wlan0 | grep -q “inet addr:” ; then
    exit
    else
    echo “Network connection down! Attempting reconnection.”
    ifup –force wlan0
    fi
    #crontab -e
    #*/10 * * * * bash /home/network-monitor.sh #每十分钟执行一次

    最后一种方法不可用,亲测,树莓派二代b型

    ifconfig wlan0 命令之前无返回,可能是cron执行时的环境有问题。

  4. dmm666 2015年11月22日 / 04:36

    这个脚本是有问题的,正确的做法是 ifconfig |grep -q ‘inet addr:’
    不信去echo $?看看,加上 ifconfig wlan0 等于白搭。

  5. dmm666 2015年11月22日 / 04:40

    上面不对,改if语句为:
    if ifconfig |grep -A1 wlan0 |grep ‘inet addr:’; then …………

发表评论

电子邮件地址不会被公开。 必填项已用*标注