Proszę tu skrypt, który można wykorzystać, należy najpierw dodać wpis do crona tak:
$ sudo crontab -e * * * * */ścieżka/do/pliku/przełącznik
To jest prosta metoda, która polega na ciągłym pingowaniu serwera żywego co minutę, jeśli serwer nie jest osiągalny, przełączy się na drugi router zdefiniowany poniżej.
Na pewno istnieje lepszy sposób na wykorzystanie tego problemu.
$ cat> przełącznik
#!/bin/sh
route=`which route`
ip=`which ip`
# define your email here
mail="[email protected]"
# We define our pingable target like 'yahoo' or whatever, note that the host have to be
# reachable every time
target="www.yahoo.com"
# log file
file="/var/log/updown.log"
# your routers here
router1="192.168.0.1"
router2="192.168.0.254"
# default router
default=$($ip route | awk '/default/ { print $3 }')
# ping command
ping -c 2 ${target}
if [ $? -eq 0 ]; then
echo "`date +%Y%m%d-%H:%M:%S`: up" >> ${file}
else
echo "`date +%Y%m%d-%H:%M:%S`: down" >> ${file}
if [ ${default}==${router1} ]; then
${route} del default gw ${router1}
${route} add default gw ${router2}
elif [ ${default}==${router2} ]; then
${route} del default gw ${router2}
${route} add default gw ${router1}
fi
# sending a notification by mail or may be by sms
echo "Connection problem" |mail -s "Changing Routing table" ${mail}
fi
Widzę .. Spróbuję tego. Dzięki chłopaki! Lepiej też przeczytać o "man cron". =) – Suezy
wywołania funkcji nie powinny mieć parens na końcu. – camh
absolutnie poprawne, tylko deklaracja powinna, zmienię to ... – falstro