Le processus cron intégré à Linux peut nous aider à répondre à ces besoins. Combiné à des scripts shell, cron peut même gérer des commandes très complexes.

Introduction à cron

La commande crontab que nous utilisons souvent est l'abréviation de cron table. C'est le fichier de configuration de cron, également appelé liste des tâches. Nous pouvons trouver les fichiers de configuration pertinents dans les dossiers suivants.

  • Le répertoire /var/spool/cron/ stocke les tâches crontab de chaque utilisateur, y compris root. Chaque tâche est nommée d'après son créateur.
  • /etc/crontab Ce fichier est responsable de la planification de diverses tâches administratives et de maintenance.
  • /etc/cron.d/ Ce répertoire est utilisé pour stocker les fichiers crontab ou les scripts à exécuter.
  • Nous pouvons également placer des scripts dans les répertoires /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly et /etc/cron.monthly pour les exécuter une fois par heure, jour, semaine ou mois.

Utilisation de crontab

Les commandes que nous utilisons couramment sont les suivantes :

crontab [-u username]    //省略用户表表示操作当前用户的crontab
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作作)

Nous utilisonscrontab -eEntrez dans l'éditeur de table de travail de l'utilisateur actuel, qui est l'interface vim commune. Chaque ligne est une commande.

La structure de la commande crontab se compose de temps + action. Son temps aminute, heure, jour, mois, semainecinq types. Les opérateurs sont :

  • * Tous les nombres dans la plage de valeurs
  • /Tous les combien de nombres
  • -De X à Z
  • ,Nombres dispersés

Exemples

Exemple 1 : Exécuter myCommand toutes les 1 minute

* * * * * myCommand

Exemple 2 : Exécuter aux 3e et 15e minutes de chaque heure

3,15 * * * * myCommand

Exemple 3 : Exécuter aux 3e et 15e minutes entre 8 AM et 11 AM

3,15 8-11 * * * myCommand

Exemple 4 : Exécuter aux 3e et 15e minutes entre 8 AM et 11 AM tous les deux jours

3,15 8-11 */2  *  * myCommand

Exemple 5 : Exécuter aux 3e et 15e minutes entre 8 AM et 11 AM chaque lundi

3,15 8-11 * * 1 myCommand

Exemple 6 : Redémarrer smb à 21:30 chaque nuit

30 21 * * * /etc/init.d/smb restart

Exemple 7 : Redémarrer smb à 4:45 le 1er, le 10 et le 22 de chaque mois

45 4 1,10,22 * * /etc/init.d/smb restart

Exemple 8 : Redémarrer smb à 1:10 chaque samedi et dimanche

10 1 * * 6,0 /etc/init.d/smb restart

Exemple 9 : Redémarrer smb toutes les 30 minutes entre 18:00 et 23:00 chaque jour

0,30 18-23 * * * /etc/init.d/smb restart

Exemple 10 : Redémarrer smb à 11:00 pm chaque samedi

0 23 * * 6 /etc/init.d/smb restart

Exemple 11 : Redémarrer smb toutes les heures

0 */1 * * * /etc/init.d/smb restart

Exemple 12 : Redémarrer smb toutes les heures entre 11 pm et 7 am

0 23-7/1 * * * /etc/init.d/smb restart