Un démon sous Linux appelé cron exécute des processus à intervalles réguliers. Il vérifie que certains scripts de votre système sont exécutés dans une série de dossiers, notamment /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly et /etc/cron.monthly. Il existe également un fichier appelé / etc / crontab.
Placer des scripts dans des dossiers Cron
Vous pouvez simplement placer des scripts dans les dossiers appropriés pour qu'ils s'exécutent à intervalles réguliers.
Par exemple, ouvrez une fenêtre de terminal et exécutez la commande ls suivante:
ls / etc / cron *
Vous verrez la liste des programmes ou des scripts exécutés toutes les heures, tous les jours, toutes les semaines et tous les mois.
Le problème avec ces dossiers est qu’ils sont un peu vagues. Par exemple, du quotidien signifie que le script s'exécutera une fois par jour, mais que vous n'avez aucun contrôle sur le temps d'exécution du script au cours de la journée.
C’est là que le fichier crontab entre en jeu.
En modifiant le fichier crontab, vous pouvez exécuter un script ou un programme à la date et à l'heure exactes.
Les permissions
La commande crontab nécessite qu'un utilisateur dispose des autorisations nécessaires pour modifier un fichier crontab. Il existe essentiellement deux fichiers utilisés pour gérer les autorisations de crontab:
- /etc/cron.allow
- /etc/cron.deny
Si le fichier /etc/cron.allow existe, l'utilisateur qui souhaite éditer le fichier crontab doit être dans ce fichier. Si le fichier cron.allow n'existe pas mais qu'il existe un fichier /etc/cron.deny, l'utilisateur ne doit pas exister dans ce fichier. Si les deux fichiers existent, /etc/cron.allow remplace le fichier /etc/cron.deny. Si aucun fichier n'existe, cela dépend de la configuration du système si un utilisateur peut éditer la crontab.
L'utilisateur root peut toujours éditer le fichier crontab. Vous pouvez utiliser la commande su pour basculer vers l'utilisateur root ou la commande sudo pour exécuter la commande crontab.
Modification du fichier Crontab
Chaque utilisateur disposant des autorisations appropriées peut créer son propre fichier crontab. La commande cron recherche en principe tous les fichiers crontab et les parcourt.
Pour vérifier si vous avez un fichier crontab, exécutez la commande suivante:
crontab -l
Si vous n’avez pas de fichier crontab, le message "no crontab for Pour créer ou éditer un fichier crontab, exécutez la commande suivante: crontab -e Le fichier qui s'ouvre contient beaucoup d'informations, mais l'élément clé est l'exemple juste avant la fin de la section des commentaires (les commentaires sont signalés par des lignes commençant par #). commande # m h dom mon dow 0 5 * * 1 tar -zcf /var/backups/home.tgz / home / Il y a 6 informations à insérer dans chaque ligne du fichier crontab: Pour chaque élément (à l'exception de la commande), vous pouvez spécifier un caractère générique. Regardez l'exemple de ligne crontab suivant: 30 18 * * * tar -zcf /var/backups/home.tgz / home / À 30 minutes, 18 heures et tous les jours, mois et jours de la semaine, cette entrée crontab compressera le répertoire personnel dans le dossier / var / backups. Pour qu'une commande soit exécutée toutes les heures après 30 minutes, exécutez la commande suivante: 30 * * * * commande Pour qu'une commande soit exécutée toutes les minutes après 18 heures, exécutez la commande suivante: * 18 * * * commande Vous devez donc faire attention à la configuration de vos commandes crontab. Par exemple: * * * 1 * commande Cette commande sera exécutée toutes les minutes, toutes les heures, tous les jours et toutes les semaines de janvier. Pour exécuter une commande le 1er janvier à 5 heures du matin, lancez la commande suivante dans le fichier crontab: La plupart du temps, vous ne voudrez pas supprimer le fichier crontab, mais vous voudrez peut-être supprimer certaines lignes du fichier crontab. Toutefois, si vous souhaitez supprimer le fichier crontab de votre utilisateur, exécutez la commande suivante: crontab -r Une façon plus sûre de procéder consiste à exécuter la commande suivante: crontab -i Le système d'exploitation demande une vérification avant de supprimer le fichier crontab.
Comment supprimer un fichier Crontab