GNU/Linux >> Tutoriels Linux >  >> Linux

Cron Vs Anacron :Comment configurer Anacron sous Linux (avec un exemple)

Anacron est le cron pour les ordinateurs de bureau et portables.

Anacron ne s'attend pas à ce que le système fonctionne 24h/24 et 7j/7 comme un serveur.

Lorsque vous souhaitez qu'une tâche en arrière-plan soit exécutée automatiquement sur une machine qui ne fonctionne pas 24h/24, 7j/7, vous devez utiliser anacron.

Par exemple, si vous avez un script de sauvegarde programmé tous les jours à 23h00 en tant que tâche cron normale, et si votre ordinateur portable n'est pas levé à 23h00, votre tâche de sauvegarde ne sera pas exécutée.

Cependant, si vous avez la même tâche planifiée dans anacron, vous pouvez être sûr qu'elle sera exécutée une fois l'ordinateur portable redémarré.

Format Anacrontab

Tout comme cron a /etc/crontab, anacron a /etc/anacrontab.

Le fichier /etc/anacrontab contient les travaux anacron mentionnés dans le format suivant.

period   delay   job-identifier   command

Le champ 1 correspond à la période de récurrence : Il s'agit d'une valeur numérique qui spécifie le nombre de jours.

  • 1 - tous les jours
  • 7 – hebdomadaire
  • 30 – mensuel
  • N – Il peut s'agir de n'importe quelle valeur numérique. N indique le nombre de jours

Remarque :Vous pouvez également utiliser « @mensuel » pour un travail qui doit être exécuté mensuellement.

Le champ 2 correspond au délai : Ceci indique le retard en minutes. c'est-à-dire X nombre de minutes qu'anacron doit attendre avant d'exécuter le travail après le démarrage de la machine.

Le champ 3 correspond à l'identifiant de l'emploi : Il s'agit du nom du fichier d'horodatage du travail. Il doit être unique pour chaque travail. Celui-ci sera disponible sous forme de fichier sous le répertoire /var/spool/anacron. Ce fichier contiendra une seule ligne indiquant la dernière fois où ce travail a été exécuté.

# ls -1 /var/spool/anacron/
test.daily
cron.daily
cron.monthly
cron.weekly

# cat /var/spool/anacron/test.daily
20110507

Le champ 4 est la commande : Commande ou script shell qui doit être exécuté.

Tout comme les scripts shell, les commentaires à l'intérieur du fichier anacrontab commencent par #

Remarque : Pour le format de fichier /etc/crontab, reportez-vous à notre article Linux Crontab :15 exemples de tâches Cron impressionnants.

Exemple d'Anacron

L'exemple suivant exécute le script /home/sathiya/backup.sh une fois tous les 7 jours.

Le jour où la tâche backup.sh est censée être exécutée, si le système est arrêté pour une raison quelconque, anacron exécutera le script backup.sh 15 minutes après le redémarrage du système (sans avoir à attendre 7 jours supplémentaires).

# cat /etc/anacrontab
7       15      test.daily      /bin/sh /home/sathiya/backup.sh

START_HOURS_RANGE et RANDOM_DELAY

L'exemple ci-dessus indique que le script backup.sh doit être exécuté tous les jours, avec un délai de 15 minutes. c'est-à-dire lorsque l'ordinateur portable a été démarré, exécuté seulement après 15 minutes.

Que se passe-t-il lorsque l'ordinateur portable ou de bureau n'a pas été arrêté ? Quand le travail est-il exécuté ? Ceci est spécifié par la variable d'environnement START_HOURS_RANGE dans le fichier /etc/anacrontab.

Par défaut, il est défini sur 3-22 dans le fichier. Cela indique la plage horaire de 3 h à 22 h.

# grep START /etc/anacrontab
START_HOURS_RANGE=3-22

En plus du délai défini par l'utilisateur spécifié dans le 2e champ du fichier /etc/anacrontab, anacron ajoute également de manière aléatoire x nombre de minutes. Le x est défini par la variable RANDOM_DELAY dans le fichier /etc/anacrontab.

Par défaut, il est défini sur 45 dans le fichier. Cela signifie qu'anacron ajoutera x minutes (choisi au hasard entre 0 et 45), et l'ajoutera au délai défini par l'utilisateur.

# grep RANDOM /etc/anacrontab
RANDOM_DELAY=45

Cron contre Anacron

Cron et anacron ont leurs propres avantages et inconvénients. Selon vos besoins, utilisez l'un d'entre eux.

Cron Anacron
La granularité minimale est d'une minute (c'est-à-dire que les travaux peuvent être programmés pour être exécutés toutes les minutes) La granularité minimale n'est qu'en jours
La tâche Cron peut être planifiée par n'importe quel utilisateur normal (si elle n'est pas restreinte par un super utilisateur) Anacron ne peut être utilisé que par un super utilisateur (mais il existe des solutions de contournement pour le rendre utilisable par un utilisateur normal)
Cron s'attend à ce que le système fonctionne 24h/24 et 7j/7. Si une tâche est planifiée et que le système est en panne pendant cette période, la tâche n'est pas exécutée. Anacron ne s'attend pas à ce que le système fonctionne 24 heures sur 24, 7 jours sur 7. Si une tâche est planifiée et que le système est en panne pendant cette période, il démarre les tâches lorsque le système redémarre.
Idéal pour les serveurs Idéal pour les ordinateurs de bureau et les ordinateurs portables
Utilisez cron lorsqu'une tâche doit être exécutée à une heure et une minute particulières Utilisez anacron lorsqu'une tâche doit être exécutée indépendamment de l'heure et de la minute

Linux
  1. Comment j'utilise cron sous Linux

  2. Comment utiliser le format de tâche Cron pour planifier une tâche sous Linux

  3. Comment configurer Rsync avec SSH sur UNIX / Linux (rsync sans mot de passe)

  4. Comment créer des threads sous Linux (avec un exemple de programme C)

  5. Comment planifier des travaux avec la commande 'at' sous Linux

Comment configurer MySQL avec Docker sous Linux

Comment automatiser des tâches avec des tâches cron sous Linux

Comment configurer une tâche Cron dans Debian 10

Comment configurer une tâche cron dans cPanel

Comment configurer Logstash sur Linux avec ElasticSearch, Redis, Nginx

Comment planifier des tâches avec Cron sous Linux