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