Startpagina > Procesbeheer > batch

batch: Commando uitvoeren wanneer de systeem belasting laag is

Het batch commando wacht tot de gemiddelde systeem belasting daalt tot onder de 0.8 en voert dan het opgegeven commando uit. Dit is handig voor het efficiënt gebruiken van systeembronnen en het verwerken van achtergrondtaken zonder belangrijke taken te hinderen.

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.

Hétzelfde categoriecommando