So verwenden Sie at und Batch unter Linux zum Planen von Befehlen
Fatmawati Achmad Zaenuri/Shutterstock
Wenn Sie einen Linux-Job planen möchten, der nur einmal ausgeführt wird, |_+_| ist übertrieben. Die |_+_| Befehlsfamilie ist das, was Sie brauchen! Und wenn Sie Prozesse nur ausführen möchten, wenn Ihr System über freie Ressourcen verfügt, können Sie |_+_| verwenden.
So planen Sie Linux-Jobs
Die |_+_| Dämon unterhält eine Liste der Jobs, die zu bestimmten Zeiten ausgeführt werden . Diese Aufgaben und Programme werden zu den geplanten Zeiten im Hintergrund ausgeführt. Dies bietet Ihnen große Flexibilität bei der Planung von Aufgaben, die wiederholt werden müssen. Ob Sie eine Aufgabe stündlich, täglich zu einer bestimmten Uhrzeit oder einmal im Monat oder Jahr ausführen müssen, Sie können sie in |_+_| einrichten.
Dies hilft jedoch nicht, wenn Sie eine Aufgabe so planen möchten, dass sie nur einmal ausgeführt wird. Sicher kannst du richten Sie es in |_+_| . ein , aber dann müssen Sie daran denken, zurückzugehen und die zu entfernen crontab-Eintrag nachdem die Aufgabe ausgeführt wurde, was unpraktisch ist.
Wenn Sie unter Linux mit einem Problem zu kämpfen haben, ist dies fast eine Garantie, dass auch jemand anderes damit zu kämpfen hat. Da es schon so lange Unix-ähnliche Betriebssysteme gibt, besteht zum Glück auch eine ausgezeichnete Chance, dass jemand eine Lösung für Ihr Problem entwickelt hat.
Für das oben beschriebene Problem haben sie es und es heißt |_+_|.
VERBUNDEN: So planen Sie Aufgaben unter Linux: Eine Einführung in Crontab-Dateien
Installieren des at-Befehls
Wir mussten |_+_| . installieren auf Ubuntu 18.04 und Manjaro 18.1.0 (es war bereits auf Fedora 31 installiert).
So installieren Sie |_+_| Verwenden Sie unter Ubuntu diesen Befehl:
cron
Anzeige
Nachdem die Installation abgeschlossen ist, können Sie |_+_| . starten Dämon mit diesem Befehl:
at
Auf Manjaro installieren Sie |_+_| mit diesem Befehl:
batch
Geben Sie nach Abschluss der Installation diesen Befehl ein, um |_+_| . zu starten Dämon:
cron
Bei jeder Distribution können Sie diesen Befehl eingeben, um sicherzustellen, dass |_+_| Daemon läuft:
cron
So verwenden Sie den at-Befehl interaktiv
Um |_+_| zu verwenden, müssen Sie ihm ein Datum und eine Uhrzeit für die Ausführung zuweisen. Sie können diese sehr flexibel schreiben, auf die wir später in diesem Artikel eingehen.
Obwohl wir |_+_| . verwenden werden interaktiv müssen Sie Datum und Uhrzeit im Voraus angeben. Wenn Sie nichts in die Befehlszeile eingeben oder etwas eingeben, das kein Datum und keine Uhrzeit ist, |_+_| antwortet mit verstümmelter Zeit, wie unten gezeigt:
cron
at
Anzeige
Datums- und Uhrzeitangaben können explizit oder relativ sein. Angenommen, Sie möchten, dass ein Befehl in einer Minute ausgeführt wird. |_+_| weiß, was jetzt bedeutet, also können Sie |_+_| . verwenden und füge eine Minute hinzu, etwa so:
at
|_+_| druckt eine Nachricht und ein |_+_| Eingabeaufforderung und wartet darauf, dass Sie die Befehle eingeben, die Sie planen möchten. Betrachten Sie jedoch zunächst die folgende Nachricht:
Es sagt dir |_+_| startet eine Instanz des |_+_| Schale und Wille führe die Befehle darin aus . Ihre Befehle werden nicht in der Bash-Shell ausgeführt, die mit dem |_+_| . kompatibel ist Shell, hat aber einen umfangreicheren Funktionsumfang.
Wenn Ihre Befehle oder Skripte versuchen, eine von Bash bereitgestellte Funktion oder Einrichtung zu verwenden, aber |_+_| nicht, sie werden scheitern.
Es ist einfach zu testen, ob Ihre Befehle oder Skripte in |_+_| ausgeführt werden. Verwenden Sie die |_+_| Befehl zum Starten eines |_+_| Hülse:
at
Die Eingabeaufforderung ändert sich in ein Dollarzeichen (|_+_|), und Sie können jetzt Ihre Befehle ausführen und überprüfen, ob sie richtig funktionieren.
AnzeigeUm zur Bash-Shell zurückzukehren, geben Sie |_+_| . ein Befehl:
at
Sie werden keine Standardausgabe oder Fehlermeldungen von den Befehlen sehen. Dies liegt daran, dass die |_+_| Shell startet als Hintergrundaufgabe und läuft ohne irgendeine Art von Bildschirmoberfläche.
Jede Ausgabe der Befehle – ob gut oder schlecht – wird Ihnen per E-Mail zugesendet. Es wird über das interne Mailsystem an denjenigen gesendet, der das |_+_| . betreibt Befehl. Dies bedeutet, dass Sie dieses interne E-Mail-System einrichten und konfigurieren müssen.
Viele (die meisten) Linux-Systeme haben kein internes E-Mail-System, da es selten benötigt wird. Diejenigen, die dies tun, verwenden normalerweise ein System wie sendmail oder Postfix . Wenn Ihr System kein internes E-Mail-System hat, können Sie Skripte in Dateien schreiben lassen oder die Ausgabe in Dateien umleiten, um die Protokollierung hinzuzufügen.
Wenn der Befehl keine generiert Standardausgabe oder Fehlermeldungen , Sie erhalten sowieso keine E-Mail. Viele Linux-Befehle zeigen den Erfolg durch Stille an, sodass Sie in den meisten Fällen keine E-Mail erhalten.
VERBUNDEN: Was sind stdin, stdout und stderr unter Linux?
Jetzt ist es an der Zeit, einen Befehl in |_+_| einzugeben. Für dieses Beispiel verwenden wir eine kleine Skriptdatei namens |_+_| das löscht |_+_|, |_+_| und |_+_| Dateien. Geben Sie den Pfad zum Befehl wie unten gezeigt ein, und drücken Sie dann die Eingabetaste.
Anzeige
Eine weitere Eingabeaufforderung wird angezeigt, und Sie können beliebig viele Befehle hinzufügen. Es ist normalerweise bequemer, Ihre Befehle in einem einzigen Skript zu haben und dieses Skript einfach aus |_+_| aufzurufen.
Drücken Sie Strg+D, um |_+_| . zu sagen Sie sind mit dem Hinzufügen von Befehlen fertig. |_+_| zeigt , was bedeutet Ende der Übertragung . Die Jobnummer und die geplante Ausführung des Jobs werden Ihnen wie unten gezeigt mitgeteilt:
Geben Sie nach Ausführung des Jobs Folgendes ein, um Ihre internen E-Mails zu überprüfen:
at
Kommt keine Mail, müssen Sie von Erfolg ausgehen. In diesem Fall können Sie natürlich überprüfen, ob die |_+_| , |_+_| und |_+_| Dateien wurden gelöscht, um zu bestätigen, dass der Befehl funktioniert hat.
Geben Sie Folgendes ein, um das Ganze erneut auszuführen:
at
Geben Sie nach einer Minute Folgendes ein, um Ihre E-Mails erneut zu überprüfen:
atd
Hey, wir haben Post! Um die erste Nachricht zu lesen, drücken Sie 1 und dann die Eingabetaste.
Anzeige
Wir haben eine E-Mail von |_+_| . erhalten weil die Befehle im Skript Fehlermeldungen generiert haben. In diesem Beispiel gab es keine zu löschenden Dateien, da sie bei der vorherigen Ausführung des Skripts entfernt wurden.
Drücken Sie D+Enter, um die E-Mail zu löschen und Q+Enter, um das E-Mail-Programm zu beenden.
Datums- und Zeitformate
Bei den Zeitformaten, die Sie mit |_+_| verwenden können, sind Sie sehr flexibel. Hier einige Beispiele:
at
at
at
at
now
at
at
at
sh
sh
sh
sh
sh
sh
$
- Sie können nur die |_+_| . verwenden Befehl interaktiv.
- Anstatt Jobs so zu planen, dass sie zu einem bestimmten Zeitpunkt ausgeführt werden, fügen Sie sie der Warteschlange hinzu und |_+_| Befehl führt sie aus, wenn das System durchschnittliche Belastung kleiner als 1,5 ist.
- Aus den oben genannten Gründen geben Sie niemals ein Datum und eine Uhrzeit mit dem |_+_| . an Befehl.
- |_+_|: Listet Anwendungen und Entitäten auf, die |_+_| . nicht verwenden können Jobs zu planen.
- |_+_|: Listet auf, die |_+_| . verwenden können Jobs zu planen. Wenn die |_+_| Datei existiert nicht, |_+_| verwendet nur die |_+_| Datei.
- Wenn Sie etwas tun müssen, das nicht regelmäßig ist, planen Sie es mit |_+_|.
- Wenn Sie eine Aufgabe nur ausführen möchten, wenn die Systemlast niedrig genug ist, verwenden Sie |_+_|.
- › Funktionen vs. Formeln in Microsoft Excel: Was ist der Unterschied?
- › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
- › Was ist MIL-SPEC Fallschutz?
- & rsaquo; Cyber Monday 2021: Die besten Tech-Deals
- › Der Computerordner ist 40: Wie Xerox Star den Desktop erstellte
- › So finden Sie Ihr Spotify Wrapped 2021
Blick in die Job-Warteschlange
Sie können |_+_| . eingeben Befehl, um die Warteschlange der geplanten Jobs anzuzeigen, wie unten gezeigt.
Für jeden Befehl in der Warteschlange, |_+_| zeigt die folgenden Informationen an:
Verwenden von at in der Befehlszeile
Du musst nicht |_+_| . verwenden interaktiv; Sie können es auch für den Befehl verwenden. Dies erleichtert die Verwendung innerhalb von Skripten.
Sie können Befehle wie folgt an |_+_| weiterleiten:
exit
Der Job wird bis zum |_+_| akzeptiert und eingeplant, und die Jobnummer und das Ausführungsdatum werden wie zuvor gemeldet.
VERBUNDEN: Wie man Pipes unter Linux verwendet
Verwenden von at mit Befehlsdateien
Sie können auch eine Befehlsfolge in einer Datei speichern und diese dann an |_+_| übergeben. Dies kann eine reine Textdatei mit Befehlen sein – es muss kein ausführbares Skript sein.
Sie können die |_+_| (Datei) wie folgt, um einen Dateinamen an |_+_| zu übergeben:
sh
Sie können das gleiche Ergebnis erzielen, wenn Sie die Datei nach |_+_| umleiten:
at
Geplante Jobs aus der Warteschlange entfernen
Um einen geplanten Job aus der Warteschlange zu entfernen, können Sie |_+_| . verwenden Befehl. Wenn Sie zuerst die Warteschlange anzeigen möchten, um die Nummer des Jobs zu finden, den Sie entfernen möchten, können Sie |_+_| . verwenden . Verwenden Sie dann diese Jobnummer mit |_+_|, wie unten gezeigt:
at
sweep.sh
*.bak
So sehen Sie eine detaillierte Ansicht der Jobs
Wie bereits erwähnt, können Sie Jobs weit in die Zukunft planen. Manchmal vergisst du vielleicht, was ein Job tun wird. Die |_+_| Befehl zeigt Ihnen die Jobs in der Warteschlange, aber nicht, was sie tun werden. Wenn Sie eine Detailansicht eines Jobs sehen möchten, können Sie die |_+_| (Katze) Option.
Zuerst verwenden wir |_+_| um die Jobnummer zu finden:
*.tmp
Anzeige
Jetzt verwenden wir die Jobnummer 13 mit dem |_+_| Möglichkeit:
*.o
Hier ist eine Aufschlüsselung der Informationen, die wir über den Job erhalten:
Der Batch-Befehl
Die |_+_| Befehl funktioniert ähnlich zum |_+_| Befehl, jedoch mit drei wesentlichen Unterschieden:
Wenn Sie |_+_| . verwenden Befehl rufen Sie ihn mit dem Namen ohne Befehlszeilenparameter wie folgt auf:
at
Fügen Sie als Nächstes Aufgaben hinzu, wie Sie es mit dem |_+_| . tun würden Befehl.
Kontrollieren des Zugriffs auf das at-Kommando
Die |_+_| und |_+_| Dateien steuern, wer die |_+_| . verwenden kann Familie von Befehlen. Diese befinden sich innerhalb der |_+_| Verzeichnis. Standardmäßig sind nur die |_+_| Datei existiert und wird erstellt, wenn |_+_| ist installiert.
So funktionieren diese:
Standardmäßig kann jeder |_+_| verwenden. Wenn Sie einschränken möchten, wer es verwenden kann, verwenden Sie das |_+_| Datei, um diejenigen aufzulisten, die es können. Dies ist einfacher, als alle hinzuzufügen, die |_+_| . nicht verwenden können zum |_+_| Datei.
Hier ist, was die |_+_| Datei sieht so aus:
at
Die Datei listet Komponenten des Betriebssystems auf, die |_+_| nicht verwenden können. Viele von ihnen werden aus Sicherheitsgründen daran gehindert, sodass Sie keine aus der Datei entfernen möchten.
Jetzt bearbeiten wir die |_+_| Datei. Wir werden |_+_| . hinzufügen und |_+_|, aber niemand anderes darf |_+_| verwenden.
Zuerst geben wir Folgendes ein:
at
Im Editor fügen wir die beiden Namen wie unten gezeigt hinzu und speichern dann die Datei.
Wenn jemand anderes versucht, |_+_| zu verwenden, wird ihm mitgeteilt, dass er keine Berechtigung hat. Angenommen, ein Benutzer namens |_+_| gibt folgendes ein:
*.bak
Er würde abgelehnt werden, wie unten gezeigt.
Anzeige
Nochmal, |_+_| ist nicht im |_+_| Datei. Sobald du jemanden in die |_+_| . steckst Datei, allen und allen anderen wird die Berechtigung zur Verwendung von |_+_| verweigert.
Ideal für Einzelstücke
Wie Sie sehen können, sind beide |_+_| und |_+_| sind ideal für Aufgaben, die Sie nur einmal ausführen müssen. Nochmals als kurzer Rückblick:
VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten
WEITER LESENDave McKay benutzte zum ersten Mal Computer, als Lochstreifen in Mode waren, und programmiert seitdem. Nach über 30 Jahren in der IT-Branche ist er heute hauptberuflich Technologiejournalist. Im Laufe seiner Karriere war er als freiberuflicher Programmierer, Leiter eines internationalen Softwareentwicklungsteams, Projektleiter für IT-Services und zuletzt als Datenschutzbeauftragter tätig. Sein Schreiben wurde von howtogeek.com, cloudavvyit.com, itenterpriser.com und opensource.com veröffentlicht. Dave ist ein Linux-Evangelist und Open-Source-Verfechter.
Vollständige Biografie lesen