Radzę zoptymalizować kod:
Kod: Zaznacz cały
#!/bin/bash
if [[ $(ping -c 2 google.pl 2>/dev/null) ]] || [[ $(ping -c 2 wp.pl 2>/dev/null) ]]; then
echo "jest net"
else
reboot
fi
Legenda:
Kod: Zaznacz cały
Jeżeli ping google prawda lub ping wp prawda wtedy ;
wypisz Jest net
Jeżeli nie prawda to
zrestartuj pc
Reszta to prawidłowe użycie cron oraz:
1. Po co echo " jest net " skoro ma to być uruchamiane przez cron?
2. Po co ten restart. Samo zrestartowanie interfejsów sieciowych nie wystarczy?
Jeszcze bardziej zwięźle widzę to tak:
Kod: Zaznacz cały
#!/bin/bash
######################################################################
### Restart interfejsu sieciowego po utracie polaczenia" ###
######################################################################
interface=eth0 # aktywne i skonfigurowane interfejsy sieciowe (eth0 wlan0 ppp0 usb0) itp..
domain1=google.pl
domain2=wp.pl
if [[ ! $(ping -c 2 $domain1 2>/dev/null) ]] || [[ ! $(ping -c 2 $domain2 2>/dev/null) ]]; then
ifdown $interface && ifup $interface
fi
exit 0
oraz przykładowy co 10-cio minutowy wpis w /etc/crontab:
Kod: Zaznacz cały
10,20,30,40,50,59 * * * * root /bin/net_check.sh