Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
w najblizszym czasie planuje ustawic serwerek w piwnicy do domowego uzytku. Nie ma potrzeby aby chodzil on caly czas. O ile nie bedzie wiekszego problemu z wake on lan to zastanawia mnie jak rozwiazac shutdown. Oczywiscie moge za kazdym razem, kiedy serwer nie bedzie mi potrzebny, logowac sie na ssh i robic to recznie. Niestety pozostali domownicy moga miec z tym problem. Takie rozwiazanie odpada.
Myslalem o skrypcie/programie, ktory monitoruje ruch w sieci lokalnej i po jakims okresie bezczynnosci wylacza komputer. Takie rozwiazanie byloby idealne, jednak nie wiem jak sie do tego zabrac.
Czytalem o magicznym pliku, ktory udostepnia sie przez sambe i po uruchomieniu go wylacza komputer. To jedna z ewentualnosci, ale nawet nie wiem jak sie do niej zabrac...
Macie jakies pomysly ? Pozdrawiam !
Offline
no to może jakiś prosty skrypt php? "exec" który wywoła halt?
Chodzi mi o to , że np domownik w wyszukiwarce wpisze sobie "192.168.0.1/shutdown.php" i się komp wyłączy ;]
Pozdrawiam
Offline
ja bym zrobil cos takiego: robie w sambie zasob np shutdown do ktorego wymagane jest logowanie i do tego zasobu dolaczam opcje:
root preexec = /bin/bash 'poweroff'
Offline
Dziekuje za szybka odpowiedz. Jednak chcialbym zeby odbywalo sie to automatycznie, jezeli sie nie da to bede kombinowal zeby robic to recznie przez jakis skrypt php, sambe etc.
Hm, zastanawiam sie czy ciezko byloby napisac taki skrypt, ktory monitorowalby siec i po krotkiej bezczynnosci wylaczy komputer. W sieci mam dwa komputery + serwer, sprawdzanie czy sa wlaczone mogloby sie odbywac za pomoca pinga. Czasem do mojej sieci podlaczaja sie dodatkowe komputery i tutaj zaczynaja sie jeszcze wieksze schody :)
Pozdrawiam
Offline
#!/bin/bash FOO=0 until [ $FOO -eq 4 ]; do if [ `ping -c 1 192.168.0.1 | grep from | wc -l` -eq 0 ]; then FOO=$[FOO + 1] else FOO=0 fi sleep 15m done shutdown -h now
Co 15 minut sprawdza czy dany IP odpowiada na ping. Jeśli nie -- zmienna FOO wzrasta o 1, jeśli odpowie -- FOO jest zerowane. Gdy FOO dojdzie do 4 (czyli po godzinie nieudanego pingowania) nastąpi shutdown.
Skrypt pisany na szybko, sprawdza tylko jeden komputer, ale nie chce mi się czegoś lepszego teraz pisać (poduszka tak tęsknie patrzy). Powinno być stosunkowo dobrą bazą do rozwinięcia.
Debianoc. :)
Offline
A ma ktoś jakiś pomysł, zeby jeszcze sprawdzało czy serwer nic nie pobiera ?
Offline
azhag wielkie dzieki, o cos takiego wlasnie mi chodzi, tylko nie wiem jak rozszerzyc ten skrypt na kilka komputerow :)
Offline
#!/bin/bash BAR=0 until [ $BAR -eq 4 ]; do sleep 15m FOO1=`ping -c 1 IP1 | grep from | wc -l` FOO2=`ping -c 1 IP2 | grep from | wc -l` FOO3=`ping -c 1 IP3 | grep from | wc -l` FOO=$[FOO1 + FOO2 + FOO3] if [ $FOO -eq 0 ]; then BAR=$[BAR + 1] else BAR=0 fi done shutdown -h now
a np. tak
Usypianie przeniosłem na początek pętli.
FOOx sprawdza poszczególne IP-ki, FOO to suma tychże.
Jeśli FOO wynosi 0 (czyli żaden IP nie odpowiedział) to BAR wzrasta o 1, jeśli nie -- BAR jest zerowany i rośnie od nowa. Gdy dojedzie do czterech system zostanie zamknięty.
Ostatnio edytowany przez azhag (2008-04-29 11:02:21)
Offline
[quote=maro]A ma ktoś jakiś pomysł, zeby jeszcze sprawdzało czy serwer nic nie pobiera ?[/quote]
mozna z ifconfiga wyciagac transfery i je porownywac, ale brak pobierania != niezerowe transfery ... lepiej chyba sprawdzac aktywne polaczenia w netstat ...
Offline
przepraszam za odkopanie tego tematu ale powyższe skrypty bardzo by mi się przydały, z tym że podczas odpalania 1 skryptu mam info
Line 4: [:Brakuje `]'
natomiast w drugim skrypcie mam
Line 3: [:Brakuje `]'
W którym miejscu są te braki bo robiłem wszelakie kombinacje i nie moge uruchomić tego skryptu.
P.S
Noga jestem z pisania skryptów dlategoż o pomoc krzyczę.
dzięki z góry za odpowiedź
Offline
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00094 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.136.26.156' WHERE u.id=1 |
0.00075 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.136.26.156', 1732446923) |
0.00042 | SELECT * FROM punbb_online WHERE logged<1732446623 |
0.00076 | DELETE FROM punbb_online WHERE ident='18.119.143.45' |
0.00060 | SELECT topic_id FROM punbb_posts WHERE id=89740 |
0.00008 | SELECT id FROM punbb_posts WHERE topic_id=11317 ORDER BY posted |
0.00085 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=11317 AND t.moved_to IS NULL |
0.00004 | SELECT search_for, replace_with FROM punbb_censoring |
0.00203 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=11317 ORDER BY p.id LIMIT 0,25 |
0.00075 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=11317 |
Total query time: 0.00736 s |