Samba sleep und WOL?

G

graphik_

Mitglied
Hallo liebe Community,
ich habe einen Samba Server auf Debian 5.0 aufgesetzt, auf diesen Server greifen mehrere PC's zu (alle mit windows). Nun möchte ich das der Server alle 30 min prüft ob er noch angesprochen wird und wenn nein das er dann in den ruhezustand geht. Außerdem soll man ihn durchs ansprechen vom PC aus wieder aufwecken können.

Nun ich weiß das es Cronjobs gibt mitdenen man die IP's im 30 min Takt anpinngen kann um zuprüfen ob der Server angesprochen wird, außerdem weiß ich das das aufwecken per WOL möglich sein soll, jedoch weiß ich leider nicht wie man das ganze realisieren kann. Desshalb bitte ich hier um hilfe so das ich weiß wie man das ganze umsetzen kann.

mfg graphik_
 
Hey vielen dank nun kann ich meinen Server herunterfahren und per WOL wieder starten lassen, nur gibt es in Debian auch so etwas wie den Ruhezustand, also das das System wieder schneller hochfährt?
 
Hallo

nur gibt es in Debian auch so etwas wie den Ruhezustand, also das das System wieder schneller hochfährt?

Ich glaube das Stichwort heißt suspend

mfg
schwedenmann
 
Supa, danke, dachte schon sowas gibt es nicht. ^^

Nun aber nocmal wegen dem Cronjob ist das so zuverwirklichen wie ich es oben beschrieben habe oder geht das nicht?
 
Hallo

zum Cronjob (damit meinst du alle 30min checken, ob die Clienst noch da sind ) ?

Das ginge z.B. indem du vom Server in einem Script (shell, python,perl) z.B. ein ping -c3 RechnerIP1 , ping-c3 rechnerIP2 usw. ausführts und dann das Ergebnis per re auswertest (100% loss muß für alle IP gelten), dann den PC wenn die Bedingung erfüllt ist in den Ruhezustan schicken, das Gazze per cronjob, oder du bastelst dir einen daemon, der alle 30min den ping Befehl ausführt.
Andere Möglichkeit nmap -sP 192.168.100.1-255 (Submaske muß an deine Verhältnisse angepaßt werden. Das Ergebnis wieder per re auswerten.

mfg
schwedenmann
 
Zuletzt bearbeitet:
Uii das klingt kompliziert, nagut werd ich mich mal genauer noch mit befassen, danke auf jeden Fall schonmal für deine Hilfe. =)
 
Hm, sowas ähnliches hatte ich auf die Schnelle und eher wenig scriptkenntnissen auch schonmal gemacht (aber ich glaube nicht, das ich das Script noch irgendwo 'rumfliegen habe). Im Prinzip hat's glaub' ich damals so ähnlich ausgeschaut, vielleicht hilft's dir weiter:

Code:
ipPrefix="192.168.1";
ipsToCheck="1 2 3 4";
canShutdown="true";

for ipToCheck in $ipsToCheck; do
    if ping -q -c1 ${ipPrefix}.${ipToCheck} > /dev/null 2>&1; then
        canShutdown="false";
    fi;
done;

if [ "$canShutdown" = "true" ]; then
    #suspend command oder
    shutdown -h now;
fi;
 
Zuletzt bearbeitet:
hey auch danke für deine Antwort ;).

Nun habe ich eine Lösung gefunden die auch geht wenn ich sie mit sh TEST.sh ausführe. (TEST is der Datei Name). Mein Skript sie so aus:

if ping -c 4 192.168.abc.de &> /dev/null
then
echo "a" (zu Testzwecken steht hier noch nicht shutdown -h now)
else
echo "b" (zu Testzwecken steht hier noch nicht shutdown -h now)
fi

Jetzt habe ich das ganze in meine crontab eingetragen:

30 * * * * sh /TEST/TEST.sh

laut diesem Eintarg sollte nun das Skript TEST alle 30 min ausgeführt werden, ich bin jedoch der Meinung das dies nicht geschieht denn wenn ich nach 30 min mir meinen Bildschirm angucke steht da nicht das gepingt wurde und auch nicht a oder b. (siehe Skript) Und genau dies ist aber der Fall wenn ich das ganze von Hand starte, hat einer da eine Idee woran es liegen könnte?
 
Zuletzt bearbeitet:
30 * * * * root sh /TEST/TEST.sh sollte es nicht so aussehen ?

und vorallem "/etc/init.d/crond restart"
 
Abend,

@faber38:
Kommt darauf an wo du es in welche Crontab du es einträgst.
Die von dir gewählte Syntax ist richtig wenn du den Eintrag in der /etc/crontab vornimmst. Dann ist auch glaube ich ein
Neustart des crond notwendig.
Editierst du die Crontab eines Users mit dem Kommando "crontab -e" darfst du den Benutzer nicht mitgeben, und hier brauchst du
auch den crond nicht neustarten.

man 5 crontab
The format of a cron command is very much the V7 standard, with a num‐
ber of upward-compatible extensions. Each line has five time and date
fields, followed by a command, followed by a newline character ('\n').
The system crontab (/etc/crontab) uses the same format, except that the
username for the command is specified after the time and date fields
and before the command. The fields may be separated by spaces or tabs.

@graphik_
In der Datei /var/log/syslog findest du die Cronjobs die von deinem System ausgeführt werden.
Die Ausgaben die cronjobs erzeugen werden in der Regel per Email an den Sysadmin geschickt.
Wenn du die Ausgaben deines Skriptes protokollieren willst ist es am einfachsten das ganze mittels
Ausgabeumleitung in ein Logfile zu schreiben.
Code:
30 * * * * sh /TEST/TEST.sh >> /tmp/shutdown.log

mfg
HeadCrash
 
Danke

@faber 38 ich hab es mal ausprobiert aber hat auch nicht geklappt

@HeadCrash danke für den Hinweis

und was ist besser? Wenn ich das ganze in crontab -e reinschreibe (ich bin als root eingeloggt) oder wenn ich es in /etc/crontab
 
User mit angeben und Dienst neu starten (/etc/crontab) vs. einfach nur 'reinschreiben ((ggf. als root) crontab -e) .... also ich bevorzuge zweiteres ;)
 
@daboss
danke dein script funktioniert... werde das ein wenig entfremden... :-)
 
So hab jetzt noch mal daboss skrit versucht und es geht immer noch nicht habe jetzt auch in crontab -e geschrieben:

5 * * * * sh /TEST/TEST.sh >> /tmp/shutdown.log

aber nach 5 min habe ich immer noch keine Logdatei -.-. Obwohl ich vorher /etc/init.d/cron restart gemacht habe.
Hat vlt. noch wer eine Idee?
 
es wäre hilfreich von dir mehr input zu bekommen...
wie sieht dein script aus ?
 
Also mein Skript sieht jetzt so aus:

ipPrefix="192.168.178";
ipsToCheck="xx";
canShutdown="true";

for ipToCheck in $ipsToCheck; do
if ping -q -c1 ${ipPrefix}.${ipToCheck} > /dev/null 2>&1; then
canShutdown="false";
fi;
done;

if [ "$canShutdown" = "true" ]; then
#suspend command oder
shutdown -h now;
fi;

meine crontab -e sieht so aus:

5 * * * * sh /TEST/TEST.sh >> /tmp/shutdown.log (zum testen auf 5 gestellt; mit sudo sh /TEST ... ist auh getestet hat aber nix gebracht)

desweiteren heißt es beim mir cron nicht crond (sollten aber die gleichen Pogramme sein wenn ich mich nicht irre)

falls noch mehr gewünscht ist einfach sagen. =)
 
ich habe das ganze mal nach gestellt...

ipPrefix="192.168.38";
ipsToCheck="2"; <--- xx bringt hier nichts.. da muste schon alle Ip adressen eintragen zb. 1 2 3 4 5 6 7 8 9 10 usw.
canShutdown="true";
vinagre="vinagre 192.168.38.8" ;


for ipToCheck in $ipsToCheck; do
if ping -q -c1 ${ipPrefix}.${ipToCheck} > /dev/null 2>&1; then
canShutdown="false";
echo "erreichbar" > /tmp/holger14.txt ;
fi;
done;

if [ "$canShutdown" = "true" ]; then
# export DISPLAY=:0.0
echo "keine Antwort" > /tmp/holger12.txt ;
fi ;

so funktioniert es bei mir...
auch mit crontab -e folgende zeile eingetragen
* * * * * sh /home/holger/bin/script
 
Hast du dein Script auch ausführbar gemacht? (chmod +x /TEST/TEST.sh) Wobei, wenn's mit sh vorndran aufgerufen wird, sollte das vielleicht nicht notwendig sein, aber ein Versuch ist's Wert....
 
"5 * * * *" bedeutet, das dein Skript 5 Minuten nach jeder vollen Stunde ausgeführt wird und nicht alle 5 Minuten :).
Für alle 5 Minuten musst du "*/5 * * * * *" eintragen.

mfg
HeadCrash
 

Ähnliche Themen

2 Probleme mit Samba

Zurück
Oben