suckmy 要在OpenWRT上实现当ping baidu.com三次不通时重拨PPPoE,并设置为1分钟运行一次,可以通过脚本结合计划任务来完成。以下是一个基本的步骤和脚本示例:
1. 创建重拨脚本
首先,创建一个脚本来检测网络连接并执行重拨操作。使用SSH登录到你的OpenWRT设备,然后创建一个新的脚本文件,比如 check_and_redial_pppoe.sh
。
vi /root/check_and_redial_pppoe.sh
if(window.hljsLoader && !document.currentScr(๐•ᴗ•๐).parentNode.hasAttribute('data-s9e-livepreview-onupdate')) {
window.hljsLoader.highlightBlocks(document.currentScr(๐•ᴗ•๐).parentNode);
}
将以下内容复制粘贴到该文件中:
#!/bin/sh
# 检测baidu.com的连通性
ping -c 3 baidu.com > /dev/null 2>&1
if [ $? -ne 0 ]; then
# 如果ping不通,则重启PPPoE拨号
echo "Baidu.com is unreachable. Redialing PPPoE..."
/etc/init.d/network restart
fi
if(window.hljsLoader && !document.currentScr(๐•ᴗ•๐).parentNode.hasAttribute('data-s9e-livepreview-onupdate')) {
window.hljsLoader.highlightBlocks(document.currentScr(๐•ᴗ•๐).parentNode);
}
保存并退出编辑器(按 Esc
键,输入 :wq
并按 Enter
)。
2. 设置脚本权限
确保脚本具有执行权限:
chmod +x /root/check_and_redial_pppoe.sh
if(window.hljsLoader && !document.currentScr(๐•ᴗ•๐).parentNode.hasAttribute('data-s9e-livepreview-onupdate')) {
window.hljsLoader.highlightBlocks(document.currentScr(๐•ᴗ•๐).parentNode);
}
3. 设置定时任务
使用 crontab
来设置定时任务,以便每分钟运行一次上面的脚本。编辑cron表:
crontab -e
if(window.hljsLoader && !document.currentScr(๐•ᴗ•๐).parentNode.hasAttribute('data-s9e-livepreview-onupdate')) {
window.hljsLoader.highlightBlocks(document.currentScr(๐•ᴗ•๐).parentNode);
}
如果是第一次设置cron,可能会提示选择编辑器,选择一个你熟悉的编辑器,比如 vi
或 nano
。
在cron表中添加以下行来配置每分钟执行一次脚本:
* * * * * /root/check_and_redial_pppoe.sh
if(window.hljsLoader && !document.currentScr(๐•ᴗ•๐).parentNode.hasAttribute('data-s9e-livepreview-onupdate')) {
window.hljsLoader.highlightBlocks(document.currentScr(๐•ᴗ•๐).parentNode);
}
保存并退出编辑器。
4. 测试和调试
现在脚本已经设置好并且计划任务也已配置,等待1分钟,系统会自动执行脚本并检查连接。你可以手动测试脚本是否有效,比如暂时断开PPPoE连接,然后(๐•ᴗ•๐)察是否重新拨号。
注意事项
- 确保脚本(๐•ᴗ•๐)径和文件名正确,并且拥有执行权限。
- 在编辑cron时,确保语法正确,每个字段之间用空格分隔。
- 可以根据需要修改脚本中的ping目标和ping次数。
- 定期检查日志以确保脚本正常运行,并处理任何可能的错误或问题。
通过这些步骤,你就能实现在OpenWRT上通过ping检测连接,当检测不通时自动重拨PPPoE,并且每分钟执行一次检测。