Übersicht
batch gehört zur at-Befehlsfamilie und ist ein Scheduler, der die Systemauslastung überwacht und Aufgaben ausführt, wenn die Auslastung niedrig ist. Er wird hauptsächlich verwendet, um ressourcenintensive Aufgaben automatisch zu Zeiten geringer Systemnutzung zu verarbeiten. batch verwendet intern die 'b'-Warteschlange des at-Befehls, und Aufgaben in dieser Warteschlange werden nur ausgeführt, wenn die durchschnittliche Systemauslastung unter 0,8 liegt.
Hauptmerkmale
- Ausführung basierend auf Systemauslastung: Startet Aufgaben bei einer durchschnittlichen Auslastung unter 0,8
- Aufgabenplanung mit Syntax ähnlich dem at-Befehl
- Geeignet für die Verarbeitung ressourcenintensiver Aufgaben im Hintergrund
- Benachrichtigung des Benutzers per E-Mail nach Abschluss der Aufgabe möglich (unter Verwendung von at-Optionen)
Hauptoptionen
Der Befehl batch selbst hat nicht viele direkte Befehlszeilenoptionen; er empfängt hauptsächlich Befehle zur Ausführung über die Standardeingabe oder aus Dateien. Hier sind die wichtigsten Methoden, um Befehle an batch zu übergeben.
Befehlseingabemethoden
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`batch` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
So verwenden Sie den Befehl batch, um bestimmte Aufgaben auszuführen, wenn die Systemauslastung niedrig ist.
Einfachen Befehl über Standardeingabe planen
batch
ls -l > /tmp/batch_output.txt
<EOT>
Wenn die Systemauslastung sinkt, wird die Dateiliste des aktuellen Verzeichnisses in /tmp/batch_output.txt gespeichert.
Mehrere Befehle über Pipe planen
echo -e "echo 'Batch job started at $(date)'\nls -a\necho 'Batch job finished'" | batch
Mehrere Befehlszeilen werden über den echo-Befehl an batch übergeben und geplant.
Skriptdatei zur Ausführung planen
echo '#!/bin/bash\necho "Hello from batch!" > /tmp/batch_hello.txt\ndate >> /tmp/batch_hello.txt' > my_script.sh
chmod +x my_script.sh
batch -f my_script.sh
Erstellen Sie die Datei my_script.sh und planen Sie dann dieses Skript mit batch. (Die Datei my_script.sh muss über Ausführungsrechte verfügen.)
Installation
Der Befehl batch ist Teil des Pakets `at`. Er ist möglicherweise nicht auf den meisten Linux-Distributionen standardmäßig enthalten. Wenn er benötigt wird, kann er mit den folgenden Befehlen installiert werden.
Debian/Ubuntu-basierte Systeme
sudo apt update && sudo apt install at
CentOS/RHEL/Fedora-basierte Systeme
sudo yum install at
Tipps & Hinweise
Nützliche Tipps und zu beachtende Punkte bei der Verwendung des Befehls batch.
Wichtige Überlegungen
- **Auslastungsschwelle**: batch startet Aufgaben, wenn die durchschnittliche Systemauslastung unter 0,8 liegt. Dieser Wert kann je nach Systemeinstellungen wie den Dateien `/etc/at.deny` oder `/etc/at.allow` variieren und wird von der Konfiguration des `atd`-Daemons beeinflusst.
- **Umgebungsvariablen**: Aufgaben, die mit batch ausgeführt werden, erben möglicherweise nicht die Umgebungsvariablen der aktuellen Shell. Es ist daher ratsam, erforderliche Pfade (PATH) und andere Umgebungsvariablen explizit im Skript festzulegen.
- **Protokollprüfung**: Wenn eine Aufgabe nicht wie erwartet ausgeführt wird oder Fehler auftreten, können Sie die Systemprotokolle (z. B. `/var/log/syslog`, `/var/log/messages` oder `journalctl -u atd`) überprüfen, um die Ursache des Problems zu ermitteln.
- **Aufgabenverwaltung**: Mit dem Befehl `atq` können Sie geplante batch-Aufgaben anzeigen und mit dem Befehl `atrm` können Sie Aufgaben abbrechen.