Overzicht
batch behoort tot de at commando familie en is een scheduler die de systeem belasting monitort en taken uitvoert wanneer de belasting laag is. Het wordt voornamelijk gebruikt om resource-intensieve taken automatisch te verwerken tijdens periodes met laag systeemgebruik. batch gebruikt intern de 'b' wachtrij van het at commando, en taken in deze wachtrij worden alleen uitgevoerd wanneer de gemiddelde systeem belasting lager is dan 0.8.
Belangrijkste Kenmerken
- Uitvoering op basis van systeem belasting: start taak wanneer gemiddelde belasting lager is dan 0.8
- Taakplanning met syntax vergelijkbaar met het at commando
- Geschikt voor het verwerken van resource-intensieve taken op de achtergrond
- Mogelijkheid tot e-mail notificatie bij taakvoltooiing (gebruik makend van at opties)
Belangrijkste Opties
Het batch commando zelf heeft niet veel directe command-line opties en ontvangt voornamelijk commando's om uit te voeren via standaardinvoer of bestanden. Hieronder volgen de belangrijkste manieren om commando's aan batch door te geven.
Manieren om commando's in te voeren
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`batch` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Manieren om specifieke taken uit te voeren met het batch commando wanneer de systeem belasting laag is.
Eenvoudig commando plannen via standaardinvoer
batch
ls -l > /tmp/batch_output.txt
<EOT>
Wanneer de systeem belasting laag is, wordt de lijst met bestanden in de huidige map opgeslagen in /tmp/batch_output.txt.
Meerdere commando's plannen via pipe
echo -e "echo 'Batch job started at $(date)'\nls -a\necho 'Batch job finished'" | batch
Meerdere regels commando's worden via echo naar batch gepiped om te plannen.
Scriptbestand uitvoeren plannen
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
Na het aanmaken van het bestand my_script.sh, wordt dit script gepland met batch. (Het bestand my_script.sh moet uitvoerrechten hebben.)
Installatie
Het batch commando is onderdeel van het `at` pakket. Het is mogelijk dat het niet standaard is inbegrepen in de meeste Linux-distributies, dus indien nodig kunt u het installeren met de volgende commando's.
Debian/Ubuntu-gebaseerde systemen
sudo apt update && sudo apt install at
CentOS/RHEL/Fedora-gebaseerde systemen
sudo yum install at
Tips & Aandachtspunten
Handige tips en aandachtspunten bij het gebruik van het batch commando.
Belangrijkste Overwegingen
- **Belastingsdrempel**: batch start taken wanneer de gemiddelde systeem belasting lager is dan 0.8. Deze waarde kan variëren afhankelijk van systeemconfiguraties zoals de bestanden `/etc/at.deny` of `/etc/at.allow`, en wordt beïnvloed door de instellingen van de `atd` daemon.
- **Omgevingsvariabelen**: Taken die via batch worden uitgevoerd, erven mogelijk niet de omgevingsvariabelen van de huidige shell. Het is daarom aan te raden om benodigde paden (PATH) of andere omgevingsvariabelen expliciet in het script te definiëren.
- **Logboekcontrole**: Als taken niet naar verwachting worden uitgevoerd of als er fouten optreden, kunt u de systeemlogboeken (bijv. `/var/log/syslog`, `/var/log/messages` of `journalctl -u atd`) controleren om de oorzaak van het probleem te achterhalen.
- **Taakbeheer**: U kunt geplande batch taken controleren met het `atq` commando en taken annuleren met het `atrm` commando.