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

So verwenden Sie Linux auf Befehl

Einführung

Der at command ist ein Linux-Befehlszeilendienstprogramm, das verwendet wird, um einen Job für die spätere Ausführung zu planen. Das Dienstprogramm liest Befehle aus der Standardeingabe und gruppiert sie in einem at Job, der nur einmal ausgeführt wird.

Die Alternative für at ist ein Cronjob. Während jedoch at Jobs werden nur einmal ausgeführt, Cron-Jobs sind wiederkehrende Ereignisse.

In diesem Tutorial lernen Sie, den at zu verwenden Befehl und sehen Sie sich nützliche Beispiele für die Befehlsplanung an.

Voraussetzungen

  • Ein System, auf dem Linux ausgeführt wird.
  • Ein Benutzerkonto mit sudo-Berechtigungen.

Installieren Sie den at-Befehl

Je nachdem, welche Linux-Distribution Sie verwenden, wird die Datei at Befehl möglicherweise nicht vorinstalliert.

Prüfen Sie, ob at wird durch Eingabe des Befehlsnamens im Terminal installiert:

Wenn das Dienstprogramm nicht vorinstalliert ist, lautet die Ausgabenachricht Befehl 'at' nicht gefunden .

Installieren Sie unter Ubuntu und Debian

Führen Sie die folgenden Schritte aus, um at zu installieren unter Ubuntu oder Debian:

1. Aktualisieren Sie das Paket-Repository:

sudo apt update

2. Installieren Sie at Befehl durch Ausführen von:

sudo apt install at

Installieren Sie unter CentOS und Fedora

Führen Sie die folgenden Schritte aus, um at zu installieren auf CentOS oder Fedora:

1. Aktualisieren Sie das Paket-Repository:

sudo yum -y update

2. Führen Sie den folgenden Befehl aus, um at zu installieren :

sudo yum install at

Scheduling-Daemon aktivieren

Der Scheduling-Daemon läuft im Hintergrund und führt die geplanten Jobs pünktlich aus.

Führen Sie nach der Installation von at den folgenden Befehl aus Paket, um atd zu aktivieren Scheduling-Daemon und stellen Sie ihn so ein, dass er beim Systemstart gestartet wird.

sudo systemctl enable --now atd

Linux unter Befehlssyntax und -optionen

Die Syntax für at Befehl ist:

at [option] runtime

Mit den Optionen können Sie geplante Jobs anzeigen oder löschen und at anpassen Auftragsplanung befehlen. Die verfügbaren Optionen sind:

Option Beschreibung
-V Druckt die Versionsnummer des Programms auf die Standardausgabe.
-q [queue] Verwendet den angegebenen [queue] bestehend aus einem einzelnen Buchstaben, der von a reicht -z und A -Z . Der a Warteschlange ist die Standardeinstellung für at und das b Warteschlange ist die Standardeinstellung für batch . Warteschlangen mit höheren Buchstaben laufen mit erhöhter Freundlichkeit.
Wenn Sie einen Job mit einem Großbuchstaben an eine Warteschlange senden, wird der Job als an batch gesendet behandelt . Der batch Lastdurchschnittsregeln gelten, sobald es an der Zeit ist, den Job auszuführen. Ernennung einer Warteschlange zu atq bewirkt, dass nur in dieser Warteschlange anstehende Jobs angezeigt werden.
-m E-Mail an den Benutzer nach Abschluss des Auftrags, auch wenn keine Ausgabe erfolgt ist. Erfordert eine konfigurierte E-Mail-Adresse für den Benutzer, der den Auftrag geplant hat.
-f [file] Liest den Job aus der angegebenen [file] anstatt von der Standardeingabe.
-b Ein Alias ​​für batch . Plant Jobs und führt sie in einem batch aus Warteschlange, wenn die durchschnittliche Systemlast unter 1,5 liegt.
-l Ein Alias ​​für atq . Listet die ausstehenden Jobs des Benutzers auf. Wenn der Benutzer ein Superuser ist, werden die ausstehenden Jobs aller Benutzer aufgelistet.
-d Ein Alias ​​für atrm . Löscht die geplanten Jobs, identifiziert durch ihre Jobnummer.
-v Zeigt die Jobausführungszeit vor dem Lesen des Jobs. Das Zeitformat ist Thu Feb 20 14:50:00 1997 .
-c Catert den angegebenen Job und zeigt seinen Inhalt in der Standard-Befehlszeilenausgabe.
-t [time_arg] Plant einen Job für die durch [time_arg] angegebene Zeit Streit. Das akzeptierte Zeitformat ist [[CC]YY]MMDDhhmm .

[runtime] Zeitausdrücke

Planen Sie einen Job mit absoluten Zeitausdrücken oder Zeitausdrücken relativ zum Zeitpunkt der Einstellung des Jobs.

Die verfügbaren absoluten Zeitausdrücke sind:

  • YYMMDDhhmm[.ss] . Geben Sie ein abgekürztes Jahr, einen Monat, einen Tag, eine Stunde, eine Minute und optional Sekunden an.
  • CCYYMMDDhhmm[.ss] . Geben Sie ein ganzes Jahr, Monat, Tag, Stunde, Minute und optional Sekunden an.
  • now . Zeigt den aktuellen Tag und die aktuelle Uhrzeit sowie die sofortige Ausführung an.
  • midnight . Zeigt 00:00 Uhr an.
  • noon . Zeigt 12:00 Uhr an.
  • teatime . Interpretiert als 16 Uhr.
  • AM . Zeigt Zeit vor 12:00 Uhr an.
  • PM . Zeigt die Zeit nach 12:00 Uhr an.
  • today . Der aktuelle Tag.
  • tomorrow . Der Tag nach dem aktuellen Tag.

Beispielsweise plant der folgende Befehl einen echo-Befehlsaufruf um 17:00 Uhr:

echo "hello" | at 5PM

Geben Sie einen relativen Zeitausdruck an durch Hinzufügen eines Pluszeichens (+ ), den Betrag und einen der folgenden Werte:

  • minutes
  • hours
  • days
  • weeks
  • months
  • years

Verwendung von Zeitausdrücken wie tomorrow oder tuesday , plant die Jobs an diesen Tagen zum aktuellen Zeitpunkt ein. Geben Sie die Zeit mit + weiter an Zeichen.

Beispielsweise plant der folgende Befehl ein echo Befehlsaufruf fünf Minuten nach dem Planen des Jobs:

echo "hello" | at now +5 minutes

Umwelt

Die SHELL Der Wert der Umgebungsvariable bestimmt, in welcher Shell (bash, zsh usw.) der at Befehl verwendet, um den Job auszuführen. Beim Planen des Jobs warnt der Befehl den Benutzer, welche Shell er während der Ausführung verwenden wird.

Linux bei Befehlsbeispielen

Der folgende Abschnitt demonstriert nützliche at Befehlsbeispiele.

Einen Job interaktiv planen

Der at Mit dem Befehl können Sie einen Job mit dem interaktiven at planen prompt. Öffnen Sie die interaktive Eingabeaufforderung mit der folgenden Syntax:

at [runtime]

Mit der interaktiven Eingabeaufforderung können Sie eingeben, welche Befehle zur angegebenen Zeit ausgeführt werden sollen. Der Befehl gibt auch eine Warnung aus, die angibt, welche Shell der Befehl verwenden wird.

Verlassen Sie die interaktive Eingabeaufforderung und speichern Sie den geplanten Job, indem Sie Strg + D drücken . Brechen Sie den Job mit Strg + C ab .

Zum Beispiel:

Im obigen Beispiel haben wir einen Job für 17:00 Uhr geplant, wodurch die interaktive Eingabeaufforderung geöffnet wird. Der geplante Job soll das echo ausführen Befehl, und das Dienstprogramm verwendet die Standard-Bash-Shell.

Einen Job an at weiterleiten

Planen Sie einen Job ohne das interaktive at Eingabeaufforderung, indem Sie Befehle an at weiterleiten und Angabe der Laufzeit. Verwenden Sie echo oder printf, um die Befehle an at zu übergeben .

Zum Beispiel:

echo "command_to_run" | at [runtime]

So planen Sie einen at Job, der das echo sendet Befehlsausgabe in eine Datei, verwenden Sie:

echo "hello" >> example.txt | at now

Verwenden Sie den cat-Befehl, um zu prüfen, ob die Datei existiert, um sicherzustellen, dass der Job ausgeführt wurde:

cat example.txt

Geplanten Auftrag anzeigen

Das -c Option zeigt den Inhalt eines zuvor geplanten Jobs an. Die Option ist nützlich, wenn Sie vergessen haben, was der Auftrag war, oder die geplante Zeit überprüfen möchten.

Sehen Sie sich den Inhalt eines geplanten at an Job mit der folgenden Syntax:

at -c [job_number]

Rufen Sie die Auftragsnummer ab, indem Sie atq ausführen Befehl zuerst, um alle ausstehenden Jobs aufzulisten.

Zum Beispiel:

Im obigen Beispiel haben wir zuerst eine Liste aller anstehenden Jobs angefordert, um die Jobnummern zu erhalten, und dann den Inhalt von Job 14 in der Standardausgabe angezeigt.

Geplante Jobs auflisten

Der at Mit dem Dienstprogramm können Sie überprüfen, welche Jobs sich noch in der Warteschlange befinden und auf ihre Ausführung warten. Es gibt zwei Möglichkeiten, die ausstehenden Jobs anzuzeigen:

  • Führen Sie atq aus Befehl.
  • Verwenden Sie den -l Möglichkeit.

Zum Beispiel:

at -l

Die Ausgabe zeigt die ausstehende Auftragsnummer, das Datum, die Uhrzeit, das Jahr und die Warteschlange für den aktuellen Benutzer. Um ausstehende Jobs aller Benutzer aufzulisten, führen Sie den Befehl mit sudo aus .

sudo atq

Im obigen Beispiel wird atq ausgeführt zeigt ausstehende Jobs nur für den aktuellen Benutzer an. Ausführen von atq mit sudo zeigt ausstehende Jobs für alle Benutzer an.

Bei Ausführung eine E-Mail-Benachrichtigung senden

Der at Das Dienstprogramm sendet standardmäßig E-Mail-Benachrichtigungen über abgeschlossene Aufträge. E-Mail-Benachrichtigungen erfordern eine funktionierende E-Mail-Adresse, die für Ihr Benutzerkonto konfiguriert ist, und das System muss in der Lage sein, E-Mails zu senden.

Um at anzuweisen Um E-Mail-Benachrichtigungen nach Auftragsabschluss zu senden, auch wenn keine Ausgabe erfolgt, geben Sie -m an Option.

Zum Beispiel:

rm example.txt | at -m tomorrow

Der obige Befehl plant den Job für die aktuelle Uhrzeit morgen ein. Wenn Sie fertig sind, wird at Dienstprogramm benachrichtigt den Benutzer unter Verwendung der konfigurierten E-Mail-Adresse für den Benutzer bosko .

Jobs ohne Benachrichtigung ausführen

Um E-Mail-Benachrichtigungen über abgeschlossene Jobs zu vermeiden, geben Sie -M an Option beim Planen eines at Arbeit.

Zum Beispiel:

echo "shutdown -h now" | at -M 00:00

Im obigen Beispiel haben wir das Herunterfahren des Systems für Mitternacht geplant und das -M verwendet Option, um zu verhindern, dass das Dienstprogramm die E-Mail-Benachrichtigung sendet.

Einen geplanten Auftrag entfernen

Um geplante at zu entfernen Jobs, geben Sie -r an Option oder führen Sie atrm aus Befehl zusammen mit der Job-ID. Rufen Sie die Job-ID ab, indem Sie atq ausführen oder mit -l Option.

Im folgenden Beispiel haben wir Job 12 entfernt:

Benutzer einschränken

Der at Paket verwendet zwei Dateien, um at einzuschränken und batch Befehlszugriff:

  • /etc/at.allow
  • /etc/at.deny

Bearbeiten Sie die Dateien, um nur bestimmten Benutzern zu erlauben, ausstehende at zu erstellen, zu entfernen oder anzuzeigen Arbeitsplätze. Die Dateien sind eine Liste von Benutzernamen, die auf at zugreifen können oder nicht Befehle. Ein Zeilenvorschubzeichen trennt die Benutzernamen und Leerzeichen sind nicht erlaubt.

Wichtig :Wenn die Datei /etc/at.allow Datei existiert, dürfen nur die darin aufgeführten Benutzer at verwenden oder batch , und /etc/at.deny Datei wird ignoriert. Wenn die Datei /etc/at.allow Datei nicht existiert, die in /etc/at.deny aufgelisteten Benutzer dürfen at nicht verwenden oder batch . Der Root-Benutzer kann immer at ausführen Befehle, unabhängig von den Zugriffskontrolldateien.

Bearbeiten Sie /etc/at.deny Datei mit sudo-Berechtigungen, um einem Benutzer den Zugriff auf at zu verweigern Befehle. Im folgenden Beispiel haben wir die Datei mit dem vi-Editor bearbeitet:

sudo vi /etc/at.deny

Nachdem Sie der Liste einen Benutzernamen hinzugefügt haben, führen Sie at aus Befehl unter Verwendung des eingeschränkten Benutzerkontos führt zu folgender Meldung:

Jobs ausführen, wenn die Systemlast dies zulässt

Der batch Befehl (-b Option) plant ein at Job zur Ausführung, wenn die durchschnittliche Systemlast unter 1,5 fällt. Die Ausführung von Jobs bei geringer Systemlast verhindert den Verbrauch aller Systemressourcen und gewährleistet einen optimalen Systembetrieb.

Beispielsweise wird der folgende Job ausgeführt, sobald die Systemlast unter 1,5 fällt:

batch
echo "Hello world!" >> hello.txt

Ubuntu
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den Verlaufsbefehl unter Linux

  3. So verwenden Sie den Apt-Get-Befehl unter Linux

  4. So verwenden Sie den id-Befehl unter Linux

  5. So verwenden Sie den Befehl „screen“ unter Linux

So verwenden Sie den fd-Befehl auf einem Linux-System

So verwenden Sie den Jobs-Befehl unter Linux

Wie verwende ich den wget-Befehl unter Linux?

Wie verwende ich den xargs-Befehl unter Linux?

So verwenden Sie den RPM-Befehl unter Linux

So verwenden Sie den which-Befehl in Linux