Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
Skrypt resetera - jak go przerobić ??? http://forum.freesco.pl/viewtopic.php?f=22&t=12376 |
Strona 1 z 1 |
Autor: | jarek_1313 [ czwartek, 11 maja 2006, 20:30 ] |
Tytuł: | Skrypt resetera - jak go przerobić ??? |
Witam Jak poprawić ten skypcik, żeby pingował kilka wskazanych adresów ip i jeżeli nie dostanie odpowiedzi z żadnego, to dopiero zrobił reset??? #!/usr/bin/perl $log_dir = "/var/log/reseter"; # system log file $d = "/bin/date"; # path to date program $host = "192.168.0.10"; # host to check $rp = "/bin/reseter"; # path to reseter $rt = "10"; # reset time (default 1s) $t1 = `$d +"%b"`; chop($t1); $t2 = `$d +"%e"`; chop($t2); $t3 = `$d +"%X"`; chop($t3); $stat = system("ping -c 1 $host >/dev/null"); $host = `hostname`; chop($host); if($stat == 0) { exit(0); } # connection okay? if yes -> exit. system("$rp $rt"); open(LOG, ">>$log_dir"); print LOG "$t1 $t2 $t3 $host RESETER: Connection to $host lost! Reseting."; close(LOG); Niestety, pingowanie AP mi nic nie daje, bo zawiesza mi się na WAN, a LAN działa dalej i pomimo, że wisi, daje się pingować. Chcę tak zrobić, by pingować komputery do niego podpięte. Niestety, jedne są włączone, drugie nie, stąd mój pomysł, żeby pingował wszystkie i w razie braku odpowiedzi od żadnego, dopiero robił reset. |
Autor: | jarek_1313 [ czwartek, 11 maja 2006, 20:42 ] |
Tytuł: | |
Oki, już rozgryzłem to, ale zostawiam info dla innych - poprostu trzeba dodać kolejno linijki, np: $host = "192.168.0.10"; # host to check $host = "192.168.0.11"; # host to check $host = "192.168.0.12"; # host to check |
Autor: | jarek_1313 [ sobota, 13 maja 2006, 17:29 ] |
Tytuł: | Jak przerobić ten skrypt |
Mam jeszcze jeden problem z reseterem. Mianowicie pingowanie nie zawsze zdaje egzamin, bo niektóre antywirusy klientów blokują tą możliwość. Próbowałem przerobić skrypt resetera łacząc go z tym od zliczania hostów w mrtg, ale coś mi to nie wychodzi do końca, bo pomimo, że te ip są podłączone to i tak mi robi reset, a nie powinien - w przypadku wykrycia któregokolwiek, że jest podłączony. To plik resetera po moich zmianach: #!/usr/bin/perl $log_dir = "/var/log/reseter"; # system log file $d = "/bin/date"; # path to date program $host = "192.168.0.4"; # host to check $host = "192.168.0.11"; # host to check $host = "192.168.0.12"; # host to check $rp = "/bin/reseter1"; # path to reseter $rt = "15"; # reset time (default 1s) $t1 = `$d +"%b"`; chop($t1); $t2 = `$d +"%e"`; chop($t2); $t3 = `$d +"%X"`; chop($t3); $stat = system("arping -f -w 2 -I eth1 $host >/dev/null"); $host = `hostname`; chop($host); if($stat == 0) { exit(0); } # connection okay? if yes -> exit. system("$rp $rt"); open(LOG, ">>$log_dir"); print LOG "$t1 $t2 $t3 $host RESETER: Connection to $host lost! Reseting Renczny."; close(LOG); Niestety, zabrakło mi koncepcji i wiedzy, by to uruchomić. Mógłby ktoś napisać, gdzie popełniłem błąd i dlaczego to nie działa jak powinno ????[/url] |
Autor: | jarek_1313 [ sobota, 13 maja 2006, 21:05 ] |
Tytuł: | |
OK, zrobiłem to jakoś i działa. Czy ktoś może to ocenić i powiedzieć, czy da się to skrócić, tzn. żeby tylko trzeba było same adresy ip dopisywać. Byłoby super, jak nie to trudno i mam nadzieję, że komuś się jeszcze moje wypociny przydadzą - wstawiam poniżej: #!/usr/bin/perl $log_dir = "/var/log/reseter"; # system log file $d = "/bin/date"; # path to date program $host = "192.168.0.5"; # host to check $host1 = "192.168.0.11"; # host to check $host2 = "192.168.0.12"; # host to check $rp = "/bin/reseter"; # path to reseter $rt = "15"; # reset time (default 1s) $t1 = `$d +"%b"`; chop($t1); $t2 = `$d +"%e"`; chop($t2); $t3 = `$d +"%X"`; chop($t3); $stat = system("arping -f -w 2 -I eth1 $host"); $stat1 = system("arping -f -w 2 -I eth1 $host1"); $stat2 = system("arping -f -w 2 -I eth1 $host2"); $host = `hostname`; chop($host); if($stat == 0) { exit(0); } if($stat1 == 0) { exit(0); } if($stat2 == 0) { exit(0); } # connection okay? if yes -> exit. system("$rp $rt"); open(LOG, ">>$log_dir"); print LOG "$t1 $t2 $t3 $host RESETER: Connection to $host lost! Reseting KLIENCI. "; close(LOG); Pozdrawiam Jarek |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |