Aperçu
batch fait partie de la famille des commandes at et est un ordonnanceur qui surveille la charge du système pour exécuter des tâches lorsque celle-ci est faible. Il est principalement utilisé pour traiter automatiquement des tâches gourmandes en ressources pendant les périodes de faible utilisation du système. batch utilise en interne la file d'attente 'b' de la commande at, et les tâches de cette file ne s'exécutent que lorsque la charge moyenne du système est inférieure à 0.8.
Caractéristiques principales
- Exécution basée sur la charge système : démarrage des tâches lorsque la charge moyenne est inférieure à 0.8
- Planification des tâches avec une syntaxe similaire à la commande at
- Adapté au traitement des tâches gourmandes en ressources en arrière-plan
- Notification par e-mail possible à l'utilisateur à la fin de la tâche (en utilisant les options de at)
Options principales
La commande batch elle-même n'a pas beaucoup d'options directes en ligne de commande ; elle reçoit principalement les commandes à exécuter via l'entrée standard ou un fichier. Voici les principales méthodes pour passer des commandes à batch.
Méthodes de saisie des commandes
Commande générée :
Essayez de combiner les commandes.
Description:
`batch` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Comment utiliser la commande batch pour exécuter une tâche spécifique lorsque la charge système est faible.
Planifier une commande simple via l'entrée standard
batch
ls -l > /tmp/batch_output.txt
<EOT>
Lorsque la charge système diminue, la liste des fichiers du répertoire courant est enregistrée dans /tmp/batch_output.txt.
Planifier plusieurs commandes via un pipe
echo -e "echo 'Batch job started at $(date)'\nls -a\necho 'Batch job finished'" | batch
Plusieurs lignes de commandes sont planifiées pour batch via la commande echo.
Planifier l'exécution d'un script
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
Créez le fichier my_script.sh, puis planifiez ce script avec batch. (Le fichier my_script.sh doit avoir les permissions d'exécution.)
Installation
La commande batch fait partie du paquet `at`. Elle peut ne pas être incluse par défaut dans la plupart des distributions Linux. Si nécessaire, vous pouvez l'installer en utilisant les commandes suivantes.
Systèmes basés sur Debian/Ubuntu
sudo apt update && sudo apt install at
Systèmes basés sur CentOS/RHEL/Fedora
sudo yum install at
Conseils et précautions
Conseils utiles et points à considérer lors de l'utilisation de la commande batch.
Considérations principales
- **Seuil de charge** : batch démarre les tâches lorsque la charge moyenne du système est inférieure à 0.8. Cette valeur peut varier en fonction des configurations système, telles que les fichiers `/etc/at.deny` ou `/etc/at.allow`, et est affectée par la configuration du démon `atd`.
- **Variables d'environnement** : les tâches exécutées par batch peuvent ne pas hériter des variables d'environnement du shell actuel. Il est donc recommandé de définir explicitement les chemins (PATH) et autres variables d'environnement nécessaires dans vos scripts.
- **Vérification des logs** : si une tâche ne s'exécute pas comme prévu ou si une erreur se produit, vous pouvez consulter les logs système (par exemple, `/var/log/syslog`, `/var/log/messages` ou `journalctl -u atd`) pour identifier la cause du problème.
- **Gestion des tâches** : vous pouvez utiliser la commande `atq` pour voir les tâches batch planifiées et la commande `atrm` pour annuler une tâche.