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/