GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Planen Sie eine Aufgabe mit dem Linux-Befehl at

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. mittags13:30 Uhr13: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.


Linux
  1. Planen von Aufgaben mit dem Linux-Cron-Befehl

  2. Diagnostizieren Sie Verbindungsprobleme mit dem Linux-Ping-Befehl

  3. Überwachen Sie Befehle und Aufgaben mit dem Linux-Überwachungsbefehl

  4. Der Befehl locate unter Linux

  5. So planen Sie Aufgaben mit at in Linux

15 Linux-PS-Befehl mit Beispielen

Zeiterfassung mit Timewarrior auf der Kommandozeile

So finden Sie Dateien mit dem fd-Befehl in Linux

Der Timer-Befehl in Linux

Planen Sie Jobs in Linux mit dem Befehl 'at'

Verstehen des Zeitbefehls in Linux