Angenommen, ich führe ein Skript unter at
Linux aus (Beispiel unten), von dem ich weiß, dass es mehrere Stunden oder sogar mehrere Tage dauern wird. Ich bin daran gewöhnt, at
eine E - Mail mit der Ausgabe des Befehls sendet , sobald es abgeschlossen ist , aber was ist, wenn ich Blick auf die aktuelle Ausgabe wollte , bevor er abgeschlossen ist ? Nehmen wir auch an, ich habe das Skript bereits ausgeführt und vergessen, die Ausgabe mit oder ähnlichen Methoden umzuleiten tail
, tee
und möchte das Skript nicht stoppen. Gibt es sowieso dafür?
drew@anubis:~$ at now
warning: commands will be executed using /bin/sh
at> ./myscript.sh
at> <EOT>
job 3 at Sat Jan 7 09:31:00 2017
tail -f
diese Datei planen ?tail
und möchte es nicht stoppen.Antworten:
Wenn der Job gestartet wurde und Sie eine Möglichkeit haben, die PID dieses Jobs zu erhalten, können Sie sehen, wo
at
die Ausgabe gespeichert wird:Wie Sie sehen können, wird die Ausgabe in einer temporären Datei gespeichert, die Sie jetzt überprüfen können:
Sie benötigen,
sudo
weil das enthaltende Verzeichnis nicht weltweit zugänglich ist (zumindest unter Ubuntu 14.04):quelle
at
Job ausführen. Sie brauchen nicht einmal die PID. Sie können einfach ausführensudo ls /var/spool/cron/atspool
und es sollte theoretisch die einzige Datei dort sein.Eine andere Möglichkeit, um festzustellen, welche Spooldatei zu Ihrem Job gehört, besteht darin, die Jobnummer von abzurufen
atq
.Konvertieren Sie die Jobnummer in hex. zB 38 (dec) = 26 (hex).
Ihre Datei wird als Warteschlangenbuchstabe bezeichnet (in 99% der
a
Fälle), gefolgt von einer 5-stelligen Hex-Job-ID (dies habe ich durch Durchsuchen des Quellcodes desat
Befehls gelernt ).Dann können Sie den Standard anzeigen
quelle