menth0l Napisano Czerwiec 4, 2007 Zgłoszenie Share Napisano Czerwiec 4, 2007 Ponieważ od niedawna mój komputer został bramką internetową dla dwóch innych komputerów pomyślałem sobie że przydałby się jakiś system automatycznego wyłączania komputera kiedy wszyscy klienci też są wyłączeni (po co marnować prąd?). Wymyśliłem sobie, że co jakiś określony czas będę wysyłał pinga do hostów i sprawdzał wyniki. Jeśli oba nie odpowiadają to zamykam system. Oto taki pseudokod: while(1) { logged = who_result(); result1 = ping(host1); result2 = ping(host2); if( !logged && !result1 && !result2 ) { shutdown -h now; } sleep 30; } Nie za bardzo mam jednak pojęcie jak wyciągnąć do zmiennych dane z pinga i who. O bashu mam znikome pojęcie więc może ktoś mnie naprowadzi? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
rob_e Napisano Czerwiec 4, 2007 Zgłoszenie Share Napisano Czerwiec 4, 2007 witam np tak jak tutaj: http://www.thecamels.org/forum/topics30/ba...rady-vt4201.htm ale... jak zrobisz automatyczne włączanie komputera jeśli ktoś jednak będzie chciał skorzystać z internetu? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
menth0l Napisano Czerwiec 4, 2007 Autor Zgłoszenie Share Napisano Czerwiec 4, 2007 Pomęczyłem się chwilkę sam i oto co wyskrobałem. Póki co wygląda że działa #!/bin/bash SLEEP_TIME=600; HOST1="192.168.0.4" HOST2="192.168.0.5" while [ 1 == 1 ] do echo -e "Sprawdzam aktywność hostów: `date -R`"; alive1=`ping $HOST1 -c 1 | grep errors | awk '{print $4};'`; alive2=`ping $HOST2 -c 1 | grep errors | awk '{print $4};'`; if [ "$alive1" == 0 -a "$alive2" == 0 ] then sudo /sbin/poweroff; fi echo -e "Przynajmniej jeden host jest aktywny. Następny test za $SLEEP_TIME sekund"; sleep $SLEEP_TIME; done To mój pierwszy przydatny skrypt w bashu więc nie śmiać się jak zrobisz automatyczne włączanie komputera jeśli ktoś jednak będzie chciał skorzystać z internetu? Przyjdzie do mnie do pokoju i włączy sobie komputer Ten skrypt ma działać głównie na noc, żeby komp niepotrzebnie nie chodził jak już wszyscy pójdą spać. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
matlas Napisano Czerwiec 5, 2007 Zgłoszenie Share Napisano Czerwiec 5, 2007 hmmm a gdy tamta osoba na chwile z restartuje komputer a ty puscisz pinga ... to wykryje go ze wylaczony i wylaczysz mu neta ? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
uosiu Napisano Czerwiec 14, 2007 Zgłoszenie Share Napisano Czerwiec 14, 2007 ja bym wtedy zrobil osobny test za minute do tego IP Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Migol Napisano Czerwiec 17, 2007 Zgłoszenie Share Napisano Czerwiec 17, 2007 ja bym zmodyfikowal go tak, ze jesli nie wykryje ktoregos z pingow, to czeka 5 min i sprawdza znowu. jesli ponownie sie nie uda, to wylacza kompa. Poza tym radzilbym zmienić: alive1=`ping $HOST1 -c 1 | grep errors | awk '{print $4};'`; na alive1=`ping $HOST1 -c 1 | grep errors | cut -f4 -d' '`; i analogicznie dla alive2. Wiem, ze sie moze czepiam, ale wywolywanie dla takiego czegos awk to juz lekka przesada, a cut jest do tego wrecz stworzony. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się