У меня есть это, что довольно хорошо работает в 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 $2}' | 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 иделать свою работу? Кроме того, похоже, что не очень хорошо иметь скрипт инициализации со сном, потому что это считается плохой формой. Что бы оптимизировать форму этого скрипта, чтобы она соответствовала моей цели?
Заранее спасибо!