dumbshitaward
Freak
- Registriert
- 27. August 2010
- Beiträge
- 274
- Reaktionspunkte
- 88
- Punkte
- 88
00 01 * * * root poweroff #System herrunter fahren (Taeglich um 01:00)
#! /bin/bash
[COLOR=#ff0000]# Check if OSCam is running
ps cax | grep oscam.x86 > /dev/null
if [ $? -eq 0 ]; then
# echo 'OSCam still running'[/COLOR]
# Read last line of oscam.log and store in variable
firstline=$(sed -n '$p' ~/oscam.log)
# Check if value stored
# echo "$firstline"
# wait
sleep 15s
# Read last line of oscam.log again
secondline=$(sed -n '$p' ~/oscam.log)
# Check if other value stored
# echo "$secondline"
# Compare lines and shutdown if inactive
if [ "$firstline" != "$secondline" ]
then
:
else
echo 'Shutting down...'
sudo shutdown -h now
fi
[COLOR=#ff0000]else
echo 'OSCam has crashed!'
fi[/COLOR]
#! /bin/bash
oscamlog=~/oscam.log
# Check if OSCam is running
ps cax | grep oscam.x86 > /dev/null
if [ $? -eq 0 ]; then
#echo 'OSCam still running'
# Read last line of oscam.log and store in variable
firstline=$(sed -n '$p' $oscamlog)
# Check if value stored
#echo "$firstline"
# wait
sleep 15s
# Read last line of oscam.log again
secondline=$(sed -n '$p' $oscamlog)
# Check if other value stored
#echo "$secondline"
# Compare lines and shutdown if inactive
if [ "$firstline" != "$secondline" ]; then
dummy=1
else
echo 'Shutting down...'
sudo shutdown -h now
fi
else
echo 'OSCam has crashed!'
fi
if [ -z "$(who)" ]&&[ "$firstline" = "$secondline" ]; then
echo 'Shutting down...'
sudo shutdown -h now
fi
für dein erstes script wirklich super
als kleiner tip um eine bessere übersicht zu haben kannst du vielleicht noch ein paar <tabs>´s einfügen:
if [ -z "$(who)" ]&&[ "$firstline" = "$secondline" ]; then
else
echo "$(who)" 'is still connected.'
ich versuch das mal zu erklärn:'if' ist klar.Code:if [ -z "$(who)" ]&&[ "$firstline" = "$secondline" ]; then
'-z' ist mir nicht klar. Was bewirkt dieser Schalter bzw. auf welchen Befehl bezieht sich der? auf if?
du hast doch zuvor auch befehle mit $( ) genutzt.. das innerhalb $( ) wird ausgeführt und die ausgabe dort zurück gegeben.. das ist also genau so wie: x=`echo bla`$ ist eine Wildcard für eine Variable, oder? (who) Gibt dann wohl den Wert dafür an (was ist der? String?)
das kann so nicht funktionieren. das hast du im linuxforum gelesen oder? da fehlt noch der wert in $username nach dem gegrept wirdIch hatte mit
who -d | grep '$usernamen' > /dev/null
if [ '$username' = 0 ]; then ...
experimentiert, hatte halt das konstruktionsbedingte Problem, dass es nur mit Positivlisten funktionieren würde, zudem noch eine Latte an Syntaxfehlern enthalten hat.
ja du kannst auch mehrere verschachtelungen machen also if ... then if ... then fi fi. es gibt immer mehrere wege etwas zu lösen'&&' *headdesk* na da hätte man echt draufkommen können, ich hatte am Schluss ein Geschachtel an if/then/else Schleifen, wo ich selbst kaum mehr durchgeblickt hab.
[ -z "$(who)" ]&&[ "$firstline" = "$secondline" ]&&shutdown -r now
kann ich dir so auch nicht sagen da ich kein ftpd nutze und somit auch kein ftpwho hab.. aber ich würd mal vermuten das pro verbindung auch ein prozess läuft oder nicht? mach mal eine ftp verbindung und poste dann die ausgabe von: ps auxw|grep ftpJetzt habe ich aber ein weiteres Problem entdeckt:
who spuckt keine Anmeldungen am ftp-Server aus, ergo würde der Server ja trotz angemeldetem FTP-User herunterfahren. Dass man da mit "ftpwho" drankommt habe ich inzwischen herausgefunden, nur wirft mir ftpwho standarmäßig ohne Anmeldung sowohl den Daemon als auch "no users connected" aus, d.h. ich kann das ja nicht mit null gleichsetzen, weil ja in allen Fällen eine Ausgabe kommt.
Ich habe da mit grep ein wenig experimentiert, aber irgendwie klappte das überhaupt nicht, also hab ich's verworfen (und kann dir somit auch nicht mehr sagen, was ich falsch gemacht habe).
kann ich dir so auch nicht sagen da ich kein ftpd nutze und somit auch kein ftpwho hab.. aber ich würd mal vermuten das pro verbindung auch ein prozess läuft oder nicht? mach mal eine ftp verbindung und poste dann die ausgabe von: ps auxw|grep ftp
root@cookiemonster ~ > ps auxw | grep ftp
proftpd 1288 0.0 0.3 7636 1648 ? Ss 21:33 0:00 proftpd: (accepting connections)
1000 19086 0.1 0.6 8244 3220 ? S 22:18 0:00 proftpd: dumbshitaward - dumbshitaward.router: IDLE
root 19767 0.0 0.1 3316 792 pts/1 S+ 22:19 0:00 grep ftp
Mal noch als kleine Anmerkung, was du vieleicht nicht bedacht hast;-)
Wenn du deinen Server immer schlafen schickst, ist somit auch deine Loadbalance statistics futsch! falls du diese benutzen solltest.
Ich bin mir nicht sicher, ob es dir um das Strom sparen geht, ansonsten ist es immer Sinnvoller ein gutes System laufen zulassen, als es ständig wieder neu zu starten, aber da kann dir Aragon mehr zu sagen, oder auch einige Berichte hier im Forum.
Wir verwenden Cookies und ähnliche Technologien für folgende Zwecke:
Akzeptieren Sie Cookies und diese Technologien?
Wir verwenden Cookies und ähnliche Technologien für folgende Zwecke:
Akzeptieren Sie Cookies und diese Technologien?