Manchmal möchte ich, dass mein Computer eine einzelne Aufgabe ausführt, aber momentan nicht. Zum Beispiel könnte ich mich in 30 Minuten benachrichtigen lassen, dass es Zeit ist, die Arbeit zu verlassen. Oder vielleicht möchte ich, dass es in zwei Stunden einen komplizierten Test durchführt, wenn ich sicher bin, dass die meisten anderen aus dem Büro verschwunden sind.
Ich weiß, ich könnte einen Cron-Job erstellen, der zu einer bestimmten Tageszeit ausgeführt wird, aber das scheint eine Menge Arbeit zu sein, wenn ich nur etwas Einfaches wie "Dieses Skript in 10 Minuten ausführen" möchte, außerdem muss ich es herausfinden Ab wann ist es tatsächlich X Minuten / Stunden / Tage? Löschen Sie den Cron-Job, sobald er abgeschlossen ist.
Natürlich könnte ich dieses Skript auch einfach schreiben und im Hintergrund ausführen:
sleep X
do_task
Aber das scheint so klobig zu sein: Ich brauche entweder ein neues Skript für jede Aufgabe, oder ich muss ein Skript schreiben und warten, das so allgemein ist, dass ich tun kann, was ich will, ganz zu schweigen davon, wie viele Sekunden in den Minuten sind. Stunden oder Tage, die ich will.
Gibt es keine bereits etablierte Lösung für dieses Problem?
quelle
Antworten:
Ich benutze ein einfaches Skript mit
at
:Sie können das genauso einfach weiterleiten
$message
,notify-send
oderdzen
wenn Sie eine Desktop-Benachrichtigung anstelle einer E-Mail wünschen.quelle
+ 2 days
) und andere Formate (YYYY-MM-DD
) verwenden. Weitere Informationen finden Sie in der Manpage.Die generische Verwendung
at
istSchreiben Sie ein Skript, das das tut, was Sie tun möchten. Verwenden Sie den vollständigen Pfad für alle externen Befehle, protokollieren Sie die Ausgabe in einer geeigneten Protokolldatei oder senden Sie sie per E-Mail.
Testen Sie das Skript.
Aktivieren Sie es mit
at -f YOURSCRIPT -t MMDDhhmm
quelle