Freesco, NND, CDN, EOS
http://forum.freesco.pl/

fork, ping, reboot etc.
http://forum.freesco.pl/viewtopic.php?f=35&t=2450
Strona 1 z 1

Autor:  Anonymous [ środa, 23 lipca 2003, 20:45 ]
Tytuł:  fork, ping, reboot etc.

Co jakiś czas zawiesza mi się router z Freesco 0.3.0 (przy 0.2.7 było tak samo) i muszę go ręcznie restartować. Przydałoby się to jakoś zautomatyzować.
Próbowałem dwóch różnych skryptów
1. ------------------------------------------------
#
while :;do
sleep 300
ping -c 1 www.home.pl >/var/test.log
if [ "`grep "100%" /var/test.log`" ]; then
sleep 20
ping -c 1 www.home.pl >/var/test.log
ping -c 1 www.wp.pl >>/var/test.log
ping -c 1 www.onet.pl >>/var/test.log
ping -c 1 www.yahoo.com >>/var/test.log
ping -c 1 www.interia.pl >>/var/test.log
if [ "`grep "round-trip" /var/test.log`" ]; then
sleep 1
#wszystko jest ok
else
#nie ma neta - restart
sync

sleep 5
reboot
fi
sleep 5
fi

done
---------------------------------------------------

2. ------------------------------------------------
#!/bin/sh
while :; do
sleep 600 2>/dev/null #10 minut
if [ "`ping -c 1 212.77.100.101 | grep "100%"`" ]; then
mode ethernet
fi
done
---------------------------------------------------

umieściłem je w katalogu /mnt/bootdev/router/rc/, uruchomiłem poleceniem "fork <nazwa_pliku>", dodatkowo umieściłem to polecenie w pliku /mnt/bootdev/router/rc/rc_user i oczywiście nie działa.
Pierwszy skrypt robi zrzuty pingów do logu (przynajmniej tak mi się wydaje) co 5 minut. U mnie nic takiego się nie dzieje dlatego przypuszczam że albo jest coś nie tak ze skryptami (choć utworzyłem te pliki metodą kopiuj-wklej i zrobiłem upload przez ftp) albo nie potrafię się posługiwać poleceniem fork :?
Nie wiem nawet czy można sprawdzić czy rzeczywiście ten proces pracuje w tle (zapewne nie - ps nic takiego nie wyświetla), polecenie fork nie generuje żadnych informacji - żeby chociaż powiedział "jest git" albo "jest kit". Mogę wpisać "fork blabla" i nawet nie zawiadomi, że nie ma takiego pliku. Może ktoś ma jakiś pomysł.

Autor:  zciech [ czwartek, 24 lipca 2003, 00:05 ]
Tytuł: 

A nadałes mu atrybut wykonywalności?
chmod 755 <nazwa_pliku>
Uruchom go recznie z konsoli i zobacz na drugiej konsoli wyniki pracy.

lepsze byly by w tych komendach adresy IP zamiast symbolicznych.
: [/] [] ()
#!/bin/sh

sleep 300
while :;do
    ping -c 1 www.home.pl >/var/test.log
    ping -c 1 www.wp.pl >>/var/test.log
    ping -c 1 www.onet.pl >>/var/test.log
    ping -c 1 www.yahoo.com >>/var/test.log
    ping -c 1 www.interia.pl >>/var/test.log
    if [ "`grep "round-trip" /var/test.log`" ]; then
        sleep 1
#       echo wszystko jest ok
    else
#       echo nie ma neta - restart
        sync
        sleep 5
        reboot
    fi
    sleep 5

done

Autor:  Anonymous [ czwartek, 24 lipca 2003, 09:53 ]
Tytuł: 

Atrybuty wykonywalności nadałem (555). Po pracy zmienię adresy symboliczne na ip choć wydaje mi się, że niezależnie od tego powinien coś jednak wpisać w /var/test.log.

Autor:  Anonymous [ czwartek, 24 lipca 2003, 21:07 ]
Tytuł: 

Już wiem gdzie tkwił błąd. Skopiowałem przez ftpa plik utworzony pod Windows. Prawdopodobnie sposób określania znaków końca linii jest różny w obu systemach (widać to po otwarciu pliku przez edita, który pokazuje na końcu linii znak M :? ). Skasowałem te znaki po editem i działa :D

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/