我有一个树莓派PI,用作机器中的时钟。
以太网接口每隔几个小时就会关闭几天。
这是我们在机器中设置的第二个pi。在原来的那个,它使用无线和无线接口发生同样的问题。随着wifi的问题,你可以拔掉usb wifi适配器,并重新插入它进行排序。但是,我无法访问以太网插槽,我无法在新的pi上打开pi盒。当网络出现故障时,使用bash自动重新启动树莓派接口
计划是使用脚本与cron运行每10分钟左右。
因此,我诉诸用脚本重新启动界面。脚本的想法是ping网关。如果没有收到响应,那么pi应该在接口eth0上运行IFDOWN,然后运行IFUP。如果失败,它应该重新启动。但是,我尝试的每个脚本都失败了。目前,我使用下面的脚本:
#!/bin/bash
function pingf1 {
ping1=$(ping -c 1 10.0.0.1)
ping1result=$?
echo $ping1result
if [ $ping1result -eq 1 ]
then
sudo /sbin/ifdown eth0 #or wlan0 if using on old clocker
sudo /sbin/ifup eth0 #or wlan0 if using on old clocker
fi
}
pingf1
exit
我知道这个帖子可能会被标记为重复的职位,但我已经尝试了很多堆栈交换不同的解决方案已经,并没有对已经工作我。
是否'须藤/ sbin目录/ ifdown你eth0'和'sudo/sbin/ifup eth0'按预期工作? – andlrc
我的建议是,你的脚本不能在root下运行,这些命令可能会要求输入密码。 – andlrc
@andlrc是的,如果我运行sudo/sbin/ifdown eth0它的作品。我手动运行脚本时没有权限错误。如果我不把/ sbin/ifdown那么脚本不起作用,当我运行它。我收到错误报告。 –