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

So verwenden Sie Nginx als Load Balancer für MySQL

Hinweis: Die Nginx-Version muss 1.9 oder höher se...

Benutzerdefinierte Docker-Netzwerkcontainer-Verbindung

Inhaltsverzeichnis Vorwort -Link Benutzerdefinier...

Detaillierte Erklärung zur Verwendung von this.$set in Vue

Inhaltsverzeichnis Verwendung von this.$set in Vu...

jQuery benutzerdefinierter Lupeneffekt

In diesem Artikelbeispiel wird der spezifische Co...

Implementierung von LNMP für die separate Bereitstellung von Docker-Containern

1. Umweltvorbereitung Die IP-Adresse jedes Contai...

So legen Sie die Breite und Höhe von HTML-Tabellenzellen fest

Beim Erstellen von Webseiten tritt häufig das Pro...

Zusammenfassung der allgemeinen MySQL-Benchmark-Befehle

mysql.lap Allgemeine Parameterbeschreibung –auto-...

Detaillierte Schritte zum Erstellen einer React-Anwendung mit einer Rails-API

Inhaltsverzeichnis Backend: Rails API-Teil Front-...

Centos8 (Minimalinstallation) Tutorial zur Installation von Python3.8+pip

Nachdem ich die Installation von Python8 minimier...

Bootstrap 3.0 Studiennotizen CSS-bezogene Ergänzung

Die wesentlichen Inhalte dieses Artikels sind wie...