So führen Sie einen Befehl zu einem bestimmten Zeitpunkt in Linux aus

So führen Sie einen Befehl zu einem bestimmten Zeitpunkt in Linux aus

Neulich habe ich rsync verwendet, um eine große Datei auf ein anderes System in meinem LAN zu übertragen. Da es sich um eine sehr große Datei handelt, dauert die Fertigstellung etwa 20 Minuten. Ich möchte nicht länger warten und auch nicht STRG+C drücken, um den Vorgang abzubrechen. Ich wollte nur wissen, ob es im Linux-Betriebssystem eine einfache Möglichkeit gibt, einen Befehl für eine bestimmte Zeit auszuführen und ihn automatisch zu beenden, wenn die Zeit abgelaufen ist – daher dieser Beitrag. Bitte lesen Sie weiter.

Führen Sie in Linux einen Befehl zu einem bestimmten Zeitpunkt aus

Wir können dies auf zwei Arten tun.

Methode 1 – Verwenden des Timeout-Befehls

Die gebräuchlichste Methode ist die Verwendung des Timeout-Befehls. Für diejenigen, die es nicht wissen: Der Timeout-Befehl begrenzt effektiv die absolute Ausführungszeit eines Prozesses. Der Timeout-Befehl ist Teil des GNU-Coreutils-Pakets und daher auf allen GNU/Linux-Systemen vorinstalliert.

Angenommen, Sie möchten einen Befehl nur 5 Sekunden lang ausführen und dann beenden. Dazu verwenden wir:

$ timeout <time-limit-interval> <command>

Beispielsweise wird der folgende Befehl nach 10 Sekunden beendet.

$ timeout 10s tail -f /var/log/pacman.log

Sie können das Suffix „s“ nach den Sekunden auch weglassen. Die folgenden Befehle sind dieselben wie oben.

$ timeout 10 tail -f /var/log/pacman.log

Andere mögliche Suffixe sind:

  • m steht für Minuten.
  • h steht für Stunden.
  • d steht für Tag.

Wenn Sie den Befehl tail -f /var/log/pacman.log ausführen, wird er so lange ausgeführt, bis Sie ihn manuell durch Drücken von STRG+C beenden. Wenn Sie es jedoch mit dem Timeout-Befehl ausführen, wird es nach dem angegebenen Zeitintervall automatisch beendet. Wenn der Befehl nach dem Timeout immer noch ausgeführt wird, können Sie wie unten gezeigt ein Kill-Signal senden.

$ timeout -k 20 10 tail -f /var/log/pacman.log

In diesem Fall sendet der Timeout-Befehl, wenn der Tail-Befehl nach 10 Sekunden immer noch ausgeführt wird, nach 20 Sekunden ein Kill-Signal und wird beendet.

Weitere Einzelheiten finden Sie auf der Manpage.

$ man timeout

Manchmal kann die Ausführung eines bestimmten Programms sehr lange dauern und Ihr System einfrieren. In diesem Fall können Sie mit diesem Trick den Vorgang nach einer gewissen Zeit automatisch beenden.

Methode 2 - Verwenden des Zeitlimitprogramms

Zeitlimit Führt den angegebenen Befehl mit den angegebenen Argumenten aus und beendet den Prozess mit dem angegebenen Signal nach der angegebenen Zeit. Zuerst sendet es ein Warnsignal und dann, nach einer Zeitüberschreitung, ein Kill-Signal.

Anders als Timeout hat Timelimit mehr Optionen. Sie können eine Reihe von Argumenten übergeben, beispielsweise „killsig“, „warnsig“, „killtime“, „warntime“ usw. Es ist in den Standard-Repositories von Debian-basierten Systemen verfügbar. Sie können es also mit dem folgenden Befehl installieren:

$ sudo apt-get install timelimit

Für Arch-basierte Systeme ist es in AUR verfügbar. Sie können es also mit jedem AUR-Helfer wie Pacaur, Packer, Yay, Yaourt usw. installieren.

Für andere Distributionen laden Sie bitte hier den Quellcode herunter und installieren Sie ihn manuell. Führen Sie nach der Installation von timelimit den folgenden Befehl aus, um die Ausführung für einen bestimmten Zeitraum, beispielsweise 10 Sekunden, durchzuführen:

$ timelimit -t10 tail -f /var/log/pacman.log

Wenn Sie timelimit ohne Argumente ausführen, werden die Standardwerte verwendet: warntime=3600 Sekunden, warnsig=15 Sekunden, killtime=120 Sekunden, killsig=9. Weitere Einzelheiten finden Sie in den Manpages am Ende dieses Handbuchs und auf der Projektwebsite.

$ man timelimit

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Analysieren Sie die grundlegenden Modulverwaltungs- und Zeitverwaltungsvorgänge des Linux-Kernels
  • So ermitteln Sie die Ausführungszeit eines Befehls oder Prozesses in Linux
  • Detaillierte Erläuterung von 2 Methoden zum Synchronisieren der Netzwerkzeit im Linux/CentOS-System
  • 15 Linux-Befehlsaliase, die Ihnen Zeit sparen
  • Freigabe von Befehlen zur Synchronisierung der Datums- und Uhrzeiteinstellung unter Linux
  • Detaillierte Erläuterung der Zeitsynchronisierungseinstellungen des Linux NTP-Servers
  • Linux-Batch-Befehl zum Löschen von Dateien nach Zeit (Dateien vor N Tagen löschen)
  • Tutorial zum Konfigurieren und Verwenden des i3-Fenstermanagers unter Linux
  • Verwenden Sie die Tools iptables und firewalld, um Verbindungsregeln für die Linux-Firewall zu verwalten
  • 8 Befehle zur effektiven Verwaltung von Prozessen in Linux
  • Hinweise zur Zeitverwaltung des Linux-Kernel-Gerätetreibers

<<:  JavaScript implementiert eine Box, die der Mausbewegung folgt

>>:  Detaillierter Informationsaustausch über das MySQL-Protokollsystem

Artikel empfehlen

Vue importiert Echarts, um ein Linienstreudiagramm zu realisieren

In diesem Artikel wird der spezifische Code für d...

CSS3-Kategoriemenüeffekt

Die CSS3-Kategoriemenüeffekte sind wie folgt: HTM...

Detaillierter Installationsprozess von mysql5.7.21 unter Win10

In diesem Artikel erfahren Sie mehr über die Inst...

Zusammenfassung des Wissens zu CSS-Injection

Moderne Browser erlauben nicht mehr, JavaScript i...

Grafisches Tutorial zur Installation von MySQL 5.7.19 (tar.gz) unter Linux

Das erste Tutorial zur Installation der MySQL-5.7...

Führen Sie die Schritte zur Verwendung des Elements in vue3.0 aus

Vorwort: Verwenden Sie das Element-Framework in v...

So installieren und konfigurieren Sie MySQL 5.7.19 unter CentOS 6.5

Die detaillierten Schritte zur Installation von m...

Fallstudie zum Löschen und Neuinstallieren eines Mac-Knotens

Mac-Knoten löschen und neu installieren löschen K...

Detaillierte Erklärung der neuen Funktion ROLE in MySQL 8

Welche Probleme löst MySQL ROLE? Wenn Sie ein DBA...

So speichern Sie Text und Bilder in MySQL

Große Textdatentypen in Oracle Clob-Langtexttyp (...