在启动时将 Openwrt 脚本重新连接到 运行 并继续检查当前状态
Make reconnect Openwrt script to run in boot and keep checking for current status
我有这个在 openwrt 中工作得很好:
#!/bin/sh
#set -x #debug
while true; do
wget -O /tmp/extip 'http://ifconfig.me/ip' 2>/dev/null
EXT_IP=$(cat /tmp/extip)
INT_IP="$(ip addr show dev wwan0 | grep "inet\b" | awk '{print }' | cut -d/ -f1)"
ROOTER=/usr/lib/rooter
[ -z $EXT_IP ] && continue
if [ $(echo "$INT_IP" | grep "$EXT_IP" -q; echo $?) -eq 1 ]; then
/sbin/ifup wan1
$ROOTER/pwrtoggle.sh 1
echo "NAT-DETECT: External ($EXT_IP) does not match Internal ($INT_IP); Reconnecting WAN1..." > /dev/kmsg
/etc/init.d/firewall restart
/etc/init.d/miniupnpd restart
fi
sleep 30
done
#set +x #debug
如何在启动时(或一段时间后)制作此脚本 运行 并让它 运行 在后台永远检查当前 IP 状态并执行其工作?此外,使用 "sleep" 的初始化脚本看起来也不好,因为它被认为是错误的形式。此脚本的优化形式是什么以符合我的目的?
提前致谢!
我在我的 OpenWRT 上安装了 GNU 屏幕,在 /etc/rc.local
我有这样的东西:
# start screen in detached mode
screen -dm -S boot -c /dev/null bash /root/bin/monitor.sh
它将在后台 运行。您也可以在登录后使用 screen -r boot
附加到它。
如果对你有用,你可以试试。
我有这个在 openwrt 中工作得很好:
#!/bin/sh
#set -x #debug
while true; do
wget -O /tmp/extip 'http://ifconfig.me/ip' 2>/dev/null
EXT_IP=$(cat /tmp/extip)
INT_IP="$(ip addr show dev wwan0 | grep "inet\b" | awk '{print }' | cut -d/ -f1)"
ROOTER=/usr/lib/rooter
[ -z $EXT_IP ] && continue
if [ $(echo "$INT_IP" | grep "$EXT_IP" -q; echo $?) -eq 1 ]; then
/sbin/ifup wan1
$ROOTER/pwrtoggle.sh 1
echo "NAT-DETECT: External ($EXT_IP) does not match Internal ($INT_IP); Reconnecting WAN1..." > /dev/kmsg
/etc/init.d/firewall restart
/etc/init.d/miniupnpd restart
fi
sleep 30
done
#set +x #debug
如何在启动时(或一段时间后)制作此脚本 运行 并让它 运行 在后台永远检查当前 IP 状态并执行其工作?此外,使用 "sleep" 的初始化脚本看起来也不好,因为它被认为是错误的形式。此脚本的优化形式是什么以符合我的目的?
提前致谢!
我在我的 OpenWRT 上安装了 GNU 屏幕,在 /etc/rc.local
我有这样的东西:
# start screen in detached mode
screen -dm -S boot -c /dev/null bash /root/bin/monitor.sh
它将在后台 运行。您也可以在登录后使用 screen -r boot
附加到它。
如果对你有用,你可以试试。