Ich habe eine Textdatei mit einem bestimmten Datum und einer bestimmten Uhrzeit. Ich möchte in der Lage sein, ein Skript zu dem in dieser Datei angegebenen Zeitpunkt auszuführen. Wie würden Sie das erreichen? Ein anderes Skript erstellen, das im Hintergrund ausgeführt wird (eine Art Deamon) und jede Sekunde prüft, ob die aktuelle Zeit mit der Zeit in der Datei übereinstimmt? Gibt es eine andere Art und Weise? Die Maschine ist ein Linux- Server, Debian keuchend. Danke im Voraus
80
Antworten:
Schauen Sie sich Folgendes an:
echo "ls -l" | at 07:00
Diese Codezeile führt "ls -l" zu einem bestimmten Zeitpunkt aus. Dies ist ein Beispiel für die Ausführung von etwas (in meinem Beispiel ein Befehl) zu einem bestimmten Zeitpunkt. "at" ist der Befehl, nach dem Sie wirklich gesucht haben. Die technischen Daten können Sie hier lesen:
http://manpages.ubuntu.com/manpages/precise/en/man1/at.1posix.html http://manpages.ubuntu.com/manpages/xenial/man1/at.1posix.html
Ich hoffe es hilft!
quelle
Can't open /var/run/atd.pid to signal atd. No atd running?
einen Hinweis?atd
laufenden Daemonat
. Auf Manjaro OpenRC können Sieat-openrc
den Daemon atd-Dienst einfach installieren und hinzufügen mit:sudo rc-update add atd
und beginnen mitsudo rc-service atd start
. Normalerweiseat
enthielt das Paket bereits einen Dienstsystemd
(das Standard-Init / Service-System unter verschiedenen Distributionen Linux einschließlich Ubuntu), mit dem es gestartetsudo systemctl start atd
und der Autostart auf Init mit aktiviert werden kannsudo systemctl enable atd
.at -c
Verwendung. Wofür ist es, wenn die Möglichkeit, einen Befehl auszuführen, darin besteht, ihn in std in weiterzuleiten?Der
at
Befehl existiert speziell für diesen Zweck (im Gegensatz zucron
dem, der zum Planen wiederkehrender Aufgaben vorgesehen ist).quelle
$(< file)
Cron ist gut für etwas, das regelmäßig läuft, wie jeden Samstag um 4 Uhr morgens. Es gibt auch Anacron , das sich um Stromausfälle, Schlafstörungen und so weiter kümmert. Sowie bei .
Für eine einmalige Lösung, für die weder root noch etwas erforderlich ist, können Sie einfach das Datum verwenden , um die Sekunden seit der Epoche der Zielzeit sowie die aktuelle Zeit zu berechnen, und dann den Ausdruck verwenden , um den Unterschied zu ermitteln, und schlaf so viele Sekunden.
quelle
at
Job bleibt auch dann geplant, wenn der Computer in der Zwischenzeit neu gestartet wird.Normalerweise verwenden Sie unter Linux
crontab
diese Art von geplanten Aufgaben. Sie müssen jedoch die Zeit angeben, zu der Sie den Timer einrichten. Wenn Sie also möchten, dass er in der Datei selbst konfiguriert werden kann, müssen Sie einen Mechanismus dafür erstellen.Aber im Allgemeinen würden Sie zum Beispiel verwenden:
Würde das Skript jeden Freitag um 1:30 (AM) ausführen Hier:
30
ist Minuten1
ist StundeDie nächsten 2 * sind
day of month
undmonth
(in dieser Reihenfolge) und5
ist Wochentagquelle