kanotix.com

Scripte - Rechner runterfahren wenn CPU Last sinkt?

stalin2000 - 22.09.2011, 07:04 Uhr
Titel: Rechner runterfahren wenn CPU Last sinkt?
Hallo Ihr,

ich mache häufig über Nacht Datenbackups oder komprimiere Videos, möchte aber auch Strom sparen. Da die meisten Programme keine Funktion "herunterfahren wenn fertig" besitzen, möchte ich gerne ein Script schreiben das folgendes tut:

Es beobachtet die CPU-Auslastung. Sobald die Auslastung 2 Minuten lang durchschnittlich auf unter 35% sinkt, wird ein Befehl aktiv, der den Rechner herunterfährt (möglichst der selbe Befehl, den auch kshutdown verwendet, weil das Programm funktioniert immer).

Vielleicht kann kshudown selber das auch. Es gibt eine Funktion "On User Inactivity (HH:MM) [Experimental] wäre das vielleicht das gleiche?

Viele Grüße
Christopher
Kano - 22.09.2011, 11:39 Uhr
Titel: Rechner runterfahren wenn CPU Last sinkt?
Warum lässt suspend nicht einfach aktiveren nach ner gewissen zeit. s2r braucht auch ned viel strom.
stalin2000 - 22.09.2011, 18:07 Uhr
Titel: Rechner runterfahren wenn CPU Last sinkt?
weil ich manchmal nicht abschätzen kann, ob das Backup noch 5 oder 10 Stunden dauert. Es gibt halt nicht bei allen Programmen eine Statusanzeige zur Gesamtdauer.
TheOne - 22.09.2011, 19:25 Uhr
Titel: Rechner runterfahren wenn CPU Last sinkt?
Hi stalin2000,

bevor du deine komplizierte Lösung angehst, schlag ich dir mal 2 Alternativen vor, die sicher funktionieren. Bei der CPU-Last kannst du dir ja nicht wirklich sicher sein obs wirklich zu Ende ist oder nicht.

So hier die 2 Alternativen:
1. ein kleines Skript was 2 Dinge tut (1. Backup-Programm/Skript starten 2. wenn beendet dann Shutdown)
2. Kshutdown kann genau das, über die GUI (als Aktion "Rechner ausschalten" und als time/event halt "Wenn ausgewählte Anwendung beendet ist" und dort wählst dann einfach Name/PID deines Backup-Programms/Skripts aus)

Gruß TheOne Winken
stalin2000 - 24.09.2011, 12:16 Uhr
Titel:
Hallo Theone, danke für die Antwort.

Zu 1 und 2: Die Programme beenden sich aber nicht von selbst, sondern bleiben nach Ende ihrer Aktivität offen. Ggf. mit einem Popup "Aktion beendet". Oder merkt kshutdown, daß das Programm nicht mehr aktiv ist?
TheOne - 24.09.2011, 16:12 Uhr
Titel:
Hmm ok, dass passt dann so doch nicht. Weil wenn die Programme noch laufen, dann haben sie natürlich noch eine PID, dass ist es worauf z.B. KShutdown achtet.

Kannst du dein Backupprogramm vielleicht mitteilen, dass es sich nach dem Backup selbstständig beenden soll? Oder ist es möglich es per CLI zu bedienen, dann wäre die Skriptlösung machbar, auch im Zusammenspiel mit KShutdown.

Wie heißt das Backupprogramm was du verwendest überhaupt?
acritox - 25.09.2011, 00:50 Uhr
Titel:
vielleicht über den load-average?

Code:
while sleep 60; do read l1 l5 l15 x < /proc/loadavg; [ ${l5/./} -lt 150 ] && kshutdown -h +5 && break; done


den Wert "150" evtl anpassen, der shutdown wird in dem Beispiel ausgeführt wenn der load-average über 5 Minuten kleiner als 1.50 ist.

du kannst ja mal mit "htop" den load anschauen während das Backup läuft und wenn es fertig ist und eine passendere Schwelle finden

acritox
stalin2000 - 26.09.2011, 19:41 Uhr
Titel:
Es betrifft zum einen pybackpack (1A Programm), welches leider weder eine selbstbeendende Funktion besitzt, noch eine wirklich gute Zeitanzeige. Außerdem wandle ich hier und da Videodateien mit bösen und kriminellen multimediaprogrammen um und die haben auch zum Teil keine auto-shutdown-Funktion...

@acritox Danke, das werde ich probieren!
stalin2000 - 27.09.2011, 17:26 Uhr
Titel:
Danke Acritox, das funktioniert hervorragend! Da hab ich ja noch einen Befehl, den ich in eine Script-GUI einbauen kann Winken
stalin2000 - 17.11.2011, 13:27 Uhr
Titel:
Hallo Ihr, ich glaube, es gibt auch im Repository eine Software, die genau das aus der GUI heraus tut: Sentinella.

Alledings funktioniert Sentinella aus irgendeinem Grund nicht. Will man es ausführen kommt diese Meldung:

"Ein interner Fehler ist aufgetreten."
Alle Zeiten sind GMT + 1 Stunde
PNphpBB2 © 2003-2007