Maison > Opération et maintenance > exploitation et maintenance Linux > Tâches planifiées sous Linux - tâches planifiées exécutées périodiquement

Tâches planifiées sous Linux - tâches planifiées exécutées périodiquement

齐天大圣
Libérer: 2020-11-09 08:59:16
original
3104 Les gens l'ont consulté

La commande at a été introduite dans les articles précédents. Elle permet de mettre en place une tâche planifiée qui n'est exécutée qu'une seule fois. Aujourd'hui, examinons les tâches planifiées qui sont exécutées périodiquement. Au travail, des tâches planifiées périodiques sont souvent utilisées, telles que la sauvegarde régulière des fichiers système, la sauvegarde régulière des fichiers de base de données, le traitement des commandes non payées depuis longtemps, etc.

Les utilisateurs configurent des tâches planifiées périodiques crontab

Généralement, si les utilisateurs souhaitent configurer des tâches planifiées périodiques, ils doivent utiliser la commande crontab . Comme chez, crontab a également une liste noire et blanche, et les fichiers de configuration sont -/etc/cron.deny, /etc/cron.allow.

Lorsque l'utilisateur définit une tâche planifiée, la tâche sera enregistrée dans le répertoire /var/spool/cron sous forme de fichier texte.

# ll /var/spool/cron/
total 4
-rw------- 1 root root 98 Jul 28 03:58 root
Copier après la connexion

À propos de crontab, nous n'avons besoin de retenir que deux commandes

  • crontab -e Configurer une tâche planifiée

  • crontab - l Afficher les tâches planifiées

Le format de définition des tâches planifiées est le suivant :

基本格式:分       时    日期    月份    星期    命令
取值范围:[0-59]  [0-23]  [1-31]   [1-12]   [0-7]
Copier après la connexion

De plus, nous devons également nous souvenir de la signification de quelques caractères spéciaux :

  • * signifie que n'importe quelle heure peut être

  • , signifie des périodes de temps distinctes

  • - signifie un période de temps continue

  • /n signifie chaque n intervalle d'unité

Jetons un coup d'œil à l'utilisation des caractères spéciaux ci-dessus à travers quelques exemples :

# 每隔5分钟,执行下检测内存的脚本
*/n * * * * /root/script/check_memory.sh
# 每个月1号凌晨5点20分,重启下服务器
20 5 1 * * /usr/sbin/reboot
Copier après la connexion

Fichiers de configuration système /etc/crontab, /etc/cron.d/*

Concernant les tâches périodiques planifiées, il existe trois principaux Les fichiers de configuration locaux sont

  • /var/spool/cron/, qui sont définis pour les utilisateurs. , qui sont définis pour les utilisateurs. Tâches planifiées du système

  • /etc/cron.d/ Pour les tâches planifiées d'un certain logiciel ou système, tel qu'un site Web, il peut y avoir plusieurs tâches planifiées. , il est donc recommandé de les exécuter dans / Dans le répertoire etc/cron.d/, créez un nouveau fichier de configuration

  • crontab -e est conçu pour le niveau utilisateur Pour le système. niveau tâches périodiques, il est recommandé de l'écrire dans le fichier /etc/ crontal, ou dans le répertoire /etc/cron.d/.

  • Regardez le contenu du fichier /etc/crontab ci-dessous
# cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
# * * * * * root /usr/bin/date  >> /root/cron.txt
Copier après la connexion

Vous pouvez voir qu'il est légèrement différent de crontab -e Vous devez spécifier le nom d'utilisateur ici.

Ensuite, regardons quels fichiers se trouvent dans le répertoire /etc/cron.d/

# ll /etc/cron.d
total 8
-rw-r--r--. 1 root root 128 Aug  3  2017 0hourly
-rw-------  1 root root 235 Aug  3  2017 sysstat
Copier après la connexion

Supposons qu'il y ait un site Web sur le serveur. Pour ce site Web, nous devons régulièrement le faire. sauvegardez la base de données. Les fichiers du site Web doivent également traiter certaines données régulièrement, nous pouvons alors créer un fichier associé dans le répertoire /etc/cron.d/. Jetons un coup d'œil au contenu du fichier 0hourly :

# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly
Copier après la connexion

Ce script consiste à exécuter le fichier de script dans le répertoire /etc/cron.hourly toutes les heures.

Je suppose que des amis aux yeux perçants ont découvert qu'en plus du répertoire cron.hourly, il existe également des répertoires cron.daily, cron.monthly et cron.weekly. Mais il existe encore quelques différences entre ces trois répertoires. Ces trois répertoires sont exécutés par anacron. Cet anacron signifie réveiller la tâche planifiée non exécutée et l'exécuter. Par exemple, lorsque vous utilisez crontab -e pour configurer une tâche planifiée et que la tâche n'est pas exécutée après le délai en raison d'un arrêt ou pour d'autres raisons, vous ne pouvez que la manquer, mais si vous placez le script dans /etc/cron Dans le répertoire .daily/, tant qu'il n'est pas exécuté, il sera quand même exécuté même si le temps est écoulé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal