Planen von Befehlen nach Systeminaktivität

7

So cronoder atkönnen unsere Befehle planen zum genauen Zeitpunkt laufen wir müssen sie, aber können wir Befehle planen zu laufen , wenn Systeme sind inaktiv ?

Etwas wie:

echo "some_commands" | when 'cpu < 15%' 
Stefan
quelle
Sie müssen genauer sein: Was ist der Zweck von some_command?
Aus Ihrer Frage geht nicht hervor, ob Sie über seti @ home oder ein Skript für verzögerte Wartung sprechen.
Ein Skript, das ausgeführt werden soll, wenn der PC nicht zu beschäftigt ist.
Stefan
2
Kein Hop, ich versuche nicht dick zu sein, noch versuche ich unhöflich zu sein. Ich gehe davon aus, dass meine Frage klar genug ist, da die 3 erhaltenen Antworten alle genau richtig sind.
Stefan
1
Das ist eine gute Frage @Stefan. Bei meinem vorherigen Job haben wir viele lastabhängige Oracle-Batch-Jobs mit DBMS_JOB ausgeführt. Es ist üblich, Jobs nur auszuführen, wenn die Last unter ein bestimmtes Niveau fällt. Ich wünschte mir oft, wir könnten dies mit cron gut machen, aber wir haben nur hackische Lösungen gefunden.
Stefan Lasiewski

Antworten:

2

hmmm ... ich glaube nicht ... aber was könnten Sie tun , ist cron ein Skript wie alle 5 Minuten laufen zu lassen und die überprüft durchschnittliche Belastung zu sehen , ob es akzeptabel niedrig ist. Ich würde den Strom nicht überprüfen, da Sie die CPU zwischen 2 wirklich hohen Spitzen bekommen könnten. Dies sind nur Gedanken darüber, was ich tun würde, um dies zu erreichen, aber es könnte einen besseren Weg geben.

Xenoterracid
quelle
3
Beachten Sie, dass uptimeBerichte Durchschnittswerte für drei verschiedene Intervalle laden (letzte Minute, letzte fünf Minuten und letzte fünfzehn Minuten). Im Allgemeinen ist der Lastdurchschnitt nur die durchschnittliche Anzahl von Elementen in der Ausführungswarteschlange während dieses Zeitintervalls. Auf einigen Systemen (insbesondere Linux) werden Prozesse im Status "D" als ausführbar gezählt. Ein System mit Prozessen, die auf einem langsamen (oder fehlenden) NFS-Server warten, kann daher einen hohen Auslastungsdurchschnitt aufweisen, der nichts mit der tatsächlichen Auslastung des Systems zu tun hat.
Jim Dennis
6

Fcron hat viele zusätzliche Funktionen gegenüber herkömmlichen Cronds. Zum Beispiel:

  • Legen Sie den Durchschnittswert für die maximale Systemlast fest, unter dem der Job ausgeführt werden soll

(Zitat von der Homepage)

So können Sie mit fcron einrichten, was Sie wollen.

maxschlepzig
quelle
4

Auf vielen Systemen ist der at-Daemon so konfiguriert, dass der batchBefehl einen Befehl ausführt, wenn das System eine bestimmte Last unterschreitet. Dies gibt Ihnen jedoch möglicherweise nicht die feinkörnige Kontrolle, die Sie suchen.

Steven D.
quelle
Von 'man batch' auf meinem Fedora 14-System: batch führt Befehle aus, wenn die Systemlaststufen dies zulassen. mit anderen Worten, wenn der Lastdurchschnitt unter 0,8 fällt oder der im Aufruf von atd angegebene Wert.
Dr. Jan
2

Ein Freund von mir hat vor einigen Tagen über dieses Problem geschrieben. Er spricht über dieses Tool Dmon . Ich habe es nicht getestet, aber es klingt großartig.

Keymon
quelle