Computer sind gut in der Automatisierung, aber nicht jeder weiß, wie man Automatisierung zum Laufen bringt. Es ist jedoch ein echter Luxus, eine Aufgabe für einen Computer zu einer bestimmten Zeit planen und dann vergessen zu können. Vielleicht müssen Sie eine Datei zu einem bestimmten Zeitpunkt hochladen oder herunterladen, oder Sie müssen einen Stapel von Dateien verarbeiten, die noch nicht existieren, aber zu einem bestimmten Zeitpunkt garantiert existieren, oder eine Einstellung, die überwacht werden muss, oder vielleicht brauchen Sie nur eine freundliche Erinnerung daran, Brot und Butter auf dem Heimweg von der Arbeit zu holen.
Dafür steht der at
Befehl ist für.
Was ist das Kommando für Linux?
Der at
Befehl ist die Methode des Linux-Terminals, mit der Sie einmalige Jobs für eine bestimmte Zeit und ein bestimmtes Datum planen können. Es ist eine spontane Automatisierung, die vom Terminal aus leicht gemacht wird.
Installieren unter
Unter Linux der at
Der Befehl ist wahrscheinlich bereits installiert. Sie können überprüfen, ob es installiert ist, indem Sie at -V
verwenden Befehl. Solange eine Version zurückgegeben wird, haben Sie at
installiert:
$ at -V
at version x.y.z
Sollten Sie versuchen, at
zu verwenden und der Befehl nicht gefunden wird, bieten die meisten modernen Linux-Distributionen an, den fehlenden at
zu installieren Paket für Sie.
Möglicherweise müssen Sie auch den at-Daemon namens atd
starten . Auf den meisten Linux-Systemen verwenden Sie den Befehl systemctl, um Dienste zu aktivieren und sie so einzustellen, dass sie von nun an automatisch gestartet werden:
$ sudo systemctl enable --now atd
Einen Job interaktiv planen mit at
Wenn Sie den at
verwenden zusammen mit der Uhrzeit, zu der eine Aufgabe ausgeführt werden soll, öffnen Sie ein interaktives at
prompt. Sie können Befehle eingeben, die Sie zum angegebenen Zeitpunkt ausführen möchten.
Wenn es hilft, können Sie sich diesen Vorgang wie eine Kalender-App vorstellen, wie Sie sie wahrscheinlich auf Ihrem Mobiltelefon verwenden – zuerst erstellen Sie einen Termin an einem Tag zu einer bestimmten Uhrzeit und geben dann an, was passieren soll.
Versuchen Sie beispielsweise, ein Memo für sich selbst zu planen, indem Sie eine Aufgabe für einige Minuten in der Zukunft erstellen. Machen Sie die Aufgabe einfach, um die Wahrscheinlichkeit eines Fehlers zu verringern. Zum Beenden des at
Eingabeaufforderung drücken Sie Strg+D auf Ihrer Tastatur.
$ at 11:20 AM
warning: commands will be executed using /bin/sh
at> echo "hello world" > ~/at-test.txt
at> <EOT>
job 3 at Mon Jul 26 11:20:00 2021
Wie Sie sehen können, at
verwendet intuitive und natürliche Zeitdefinitionen. Sie müssen die 24-Stunden-Uhr nicht kennen oder Zeiten in UTC oder ein bestimmtes ISO-Format übersetzen. Im Allgemeinen können Sie jede Schreibweise verwenden, die Ihnen natürlich erscheint, wie z. B. mittags , 13:30 Uhr , 13:37 , usw., um zu beschreiben, wann eine Aufgabe ausgeführt werden soll.
Warten Sie ein paar Minuten und überprüfen Sie dann, ob Ihre Aufgabe ausgeführt wurde, indem Sie cat
ausführen oder der tac
Befehl für die von Ihnen erstellte Datei:
$ cat ~/at-test.txt
hello world
Einen Job mit at planen
Sie müssen die interaktive Eingabeaufforderung nicht verwenden, um Jobs mit at
zu planen . Sie können stattdessen mit echo
Befehle dorthin leiten oder printf
. In diesem Beispiel verwende ich die Schreibweise jetzt und um wie viele Minuten soll die Aufgabe verzögert werden:
$ echo "echo 'hello again' >> ~/at-test.txt" | at now +1 minute
Überprüfen Sie nach einer Minute, ob der neue Befehl ausgeführt wurde:
$ cat ~/at-test.txt
hello world
hello again
Weitere Linux-Ressourcen
- Spickzettel für Linux-Befehle
- Spickzettel für fortgeschrittene Linux-Befehle
- Kostenloser Online-Kurs:RHEL Technical Overview
- Spickzettel für Linux-Netzwerke
- SELinux-Spickzettel
- Spickzettel für allgemeine Linux-Befehle
- Was sind Linux-Container?
- Unsere neuesten Linux-Artikel
Zeitausdrücke
Der at
Befehl ist ziemlich nachsichtig beim Interpretieren von Zeiten. Sie können zwischen vielen Formaten wählen, je nachdem, welches für Sie am bequemsten ist:
YYMMDDhhmm
[.ss]
(abgekürzt Jahr, Monat, Tag, Stunde, Minute und optional Sekunden)CCYYMMDDhhmm
[.ss]
(ganzes Jahr, Monat, Tag, Stunde, Minute und optional Sekunden)now
midnight
noon
teatime
(16 Uhr)AM
PM
Zeiten und Daten können absolut sein oder ein Pluszeichen hinzufügen (+ ), um sie relativ zu jetzt zu machen . Wenn Sie relative Zeiten angeben, können Sie Wörter verwenden, die Sie wahrscheinlich bereits verwenden:
minutes
hours
days
weeks
months
years
Zeit- und Datumssyntax
Der at
Der Befehl verzeiht weniger, wenn es darum geht, Zeiten von Daten zu unterscheiden. Die Zeit muss zuerst kommen, gefolgt vom Tag, obwohl der Tag standardmäßig der aktuelle Tag ist und nur benötigt wird, wenn eine Aufgabe für einen Tag in der Zukunft geplant wird.
Dies sind Beispiele für einige gültige Ausdrücke:
$ echo "rsync -av /home/tux me@myserver:/home/tux/" | at 3:30 AM tomorrow
$ echo "/opt/batch.sh ~/Pictures" | at 3:30 AM 08/01/2022
$ echo "echo hello" | at now + 3 days
Anzeigen Ihrer Warteschlange
Sobald Sie at
angenommen haben und Aufgaben planen, anstatt sich Notizen auf Zettel zu kritzeln, die um Ihren Schreibtisch herumliegen, möchten Sie vielleicht überprüfen, ob Sie noch Jobs in der Warteschlange haben.
Um Ihren at
anzuzeigen Warteschlange verwenden Sie den atq
Befehl:
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9 Tue Jul 27 03:30:00 2021 a tux
7 Tue Jul 27 00:00:00 2021 a tux
Um eine Aufgabe aus Ihrer Warteschlange zu entfernen, verwenden Sie atrm
Befehl zusammen mit der Auftragsnummer. So entfernen Sie beispielsweise Job 7:
$ atrm 7
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9 Tue Jul 27 03:30:00 2021 a tux
Um zu sehen, was tatsächlich in einem geplanten Job enthalten ist, müssen Sie sich den at
ansehen Spule. Nur der Root-Benutzer kann at
anzeigen spool, also müssen Sie sudo
verwenden um die Spule anzuzeigen oder zu cat
den Inhalt eines Jobs.
Planen Sie mit Linux unter
Der at
System ist eine ausgezeichnete Möglichkeit, um zu vermeiden, dass Sie später am Tag einen Auftrag ausführen oder Ihren Computer einen Auftrag für Sie ausführen lassen, wenn Sie nicht da sind. Im Gegensatz zu cron
, es ist frei von der Erwartung, dass ein Job von jetzt an bis auf ewig regelmäßig ausgeführt werden muss, und seine Syntax ist folglich viel einfacher als der cron
Syntax.
Wenn Sie das nächste Mal einen kleinen Job haben, den sich Ihr Computer merken und verwalten soll, versuchen Sie es mit at
Befehl.