Il existe plusieurs façons d'exécuter un travail périodiquement dans un système UNIX. Voici une ventilation des méthodes les plus courantes et de leurs différences:
1. crontab
* Objectif: La méthode la plus utilisée pour la planification des tâches. Il vous permet de définir des horaires pour les commandes et les scripts à exécuter à des moments ou des intervalles spécifiques.
* comment cela fonctionne:
* Vous créez un fichier crontab, généralement dans votre répertoire domestique (`crontab -e`), qui contient des lignes avec des informations de planification et la commande à exécuter.
* Chaque ligne a six champs représentant:minute, heure, jour de mois, mois, jour de semaine et commandement.
* Vous pouvez utiliser les jilèges (`* ',`?', `-`,` / `) pour représenter des plages de valeurs pour ces champs.
* Exemple:
`` `bash
# Exécutez un script tous les jours à 3h00 du matin
0 3 * * * /path/to/your/script.sh
# Exécutez une commande toutes les 5 minutes
* / 5 * * * * echo "courir toutes les 5 minutes"
`` '
* pros:
* Options de planification flexibles.
* Simple et bien documenté.
* Peut être utilisé pour une grande variété de tâches.
* contre:
* Nécessite un accès root pour modifier le crontab à l'échelle du système.
* Nécessite un démon cron fonctionnant en arrière-plan.
* Peut être difficile pour gérer les horaires complexes.
2. à la commande
* Objectif: Utilisé pour la planification des tâches à fonctionner à un moment futur spécifique.
* comment cela fonctionne:
* Utilisez la commande `at` avec un horodat ou une heure relative (par exemple," demain à 17h00 ").
* Entrez la commande ou le script que vous souhaitez exécuter.
* Le système stocke le travail et l'exécute à l'heure spécifiée.
* Exemple:
`` `bash
# Exécutez un script demain à 10h00
à 10h00 demain
`` '
* pros:
* Facile à utiliser pour les tâches ponctuelles.
* Ne nécessite pas de création d'une entrée crontab.
* contre:
* Uniquement pour les futures exécutions uniques, pas des travaux récurrents.
* Options de planification limitées par rapport à Crontab.
3. SystemD TIMERS
* Objectif: Les distributions Linux modernes basées sur Systemd offrent une approche sophistiquée des travaux de planification.
* comment cela fonctionne:
* Vous créez un fichier d'unité de service (`/ etc / systemd / system / your-job.timer`) avec des informations de planification.
* Le service `systemd-timerd` surveille ces unités de minuterie et déclenche les services correspondants aux heures spécifiées.
* Exemple:
`` `bash
[Unité]
Description =exécuter un script toutes les heures
After =Network-online.target
[Minuteur]
Oncalendar =* - * - * 00:00:00
Onactivesec =3600
[Service]
Type =simple
Utilisateur =votre nom-user
Execstart =/ path / to / your / script.sh
`` '
* pros:
* Intégré à Systemd, offrant des fonctionnalités étendues.
* Plus robuste et efficace que Crontab.
* Permet des options de planification flexibles, y compris les fuseaux horaires et la planification relative.
* contre:
* Nécessite une familiarité avec les fichiers d'unité SystemD.
* Pas aussi largement utilisé que Crontab, mais gagnant en popularité.
4. anacron
* Objectif: Utilisé pour les travaux qui doivent s'exécuter périodiquement même si le système n'est pas en cours d'exécution à l'heure prévue.
* comment cela fonctionne:
* `anacron` vérifie les travaux prévus dans` / etc / anacrontab`.
* Si le système ne fonctionnait pas à l'heure prévue, il exécute le travail lorsqu'il redémarre.
* Exemple:
`` `bash
# Exécutez un script tous les 3 jours
3 12 * * * /path/to/your/script.sh
`` '
* pros:
* Assure que les travaux s'exécutent même si le système n'est pas en place à l'heure prévue.
* contre:
* Planification moins flexible que Crontab.
* Pas toujours nécessaire si le système s'exécute régulièrement.
Choisir la bonne méthode:
* crontab: Pour les tâches récurrentes avec des temps et des intervalles spécifiques.
* à: Pour les tâches uniques à un moment futur spécifique.
* Timeuses Systemd: Pour les systèmes modernes avec SystemD, offrant des options de planification avancées.
* anacron: Pour les travaux qui doivent s'exécuter même si le système ne fonctionnait pas à l'heure prévue.
N'oubliez pas de tester soigneusement vos travaux prévus pour vous assurer qu'ils fonctionnent comme prévu et d'éviter tout conflit potentiel.
|