Tuto: Programmer des tâches avec cron et la crontab
Table des matières:
- Qu'est-ce que le fichier Crontab
- Syntaxe et opérateurs Crontab
- Fichiers Crontab à l'échelle du système
- Macros prédéfinies
- Commande Linux Crontab
- Variables Crontab
- Restrictions Crontab
- Exemples de tâches Cron
- Conclusion
Cron est un démon de planification qui exécute des tâches à des intervalles spécifiés. Ces tâches sont appelées tâches cron et sont principalement utilisées pour automatiser la maintenance ou l'administration du système.
Par exemple, vous pouvez définir un travail cron pour automatiser les tâches répétitives telles que la sauvegarde de bases de données ou de données, la mise à jour du système avec les derniers correctifs de sécurité, la vérification de l'utilisation de l'espace disque, l'envoi d'e-mails, etc. Certaines applications, telles que Drupal ou Magento, nécessitent des tâches cron pour effectuer certaines tâches.
Les tâches cron peuvent être planifiées pour s'exécuter par minute, heure, jour du mois, mois, jour de la semaine ou toute combinaison de ces éléments.
Qu'est-ce que le fichier Crontab
Crontab (table cron) est un fichier texte qui spécifie la planification des tâches cron. Il existe deux types de fichiers crontab. Les fichiers crontab à l'échelle du système et les fichiers crontab utilisateur individuel.
Les fichiers crontab des utilisateurs sont stockés par leur nom et leur emplacement varie en fonction des systèmes d'exploitation. Dans un système basé sur Red Hat tel que CentOS, les fichiers crontab sont stockés dans le répertoire
/var/spool/cron
tandis que sur Debian et les fichiers Ubuntu sont stockés dans le répertoire
/var/spool/cron/crontabs
.
Bien que vous puissiez modifier les fichiers crontab utilisateur manuellement, il est recommandé d'utiliser la commande
crontab
.
/etc/crontab
et les fichiers à l'intérieur du répertoire
/etc/cron.d
sont des fichiers crontab à l'échelle du système qui ne peuvent être modifiés que par les administrateurs système.
Dans la plupart des distributions Linux, vous pouvez également placer des scripts dans les
/etc/cron.{hourly, daily, weekly, monthly}
et les scripts seront exécutés toutes les
hour/day/week/month
.
Syntaxe et opérateurs Crontab
Chaque ligne du fichier crontab utilisateur contient six champs séparés par un espace suivi de la commande à exécuter.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
Les cinq premiers champs peuvent contenir une ou plusieurs valeurs, séparées par une virgule ou une plage de valeurs séparées par un trait d'union.
-
*
-L'opérateur astérisque signifie n'importe quelle valeur ou toujours. Si vous avez le symbole astérisque dans le champ Heure, cela signifie que la tâche sera effectuée toutes les heures.,
-L'opérateur virgule vous permet de spécifier une liste de valeurs pour la répétition. Par exemple, si vous avez1, 3, 5
dans le champ Heure, la tâche s'exécutera à 1 h, 3 h et 5 h.-
L'opérateur de tiret vous permet de spécifier une plage de valeurs. Si vous avez1-5
dans le champ Jour de la semaine, la tâche s'exécutera tous les jours de la semaine (du lundi au vendredi)./
-L'opérateur de barre oblique vous permet de spécifier des valeurs qui seront répétées sur un certain intervalle entre elles. Par exemple, si vous avez*/4
dans le champ Heure, cela signifie que l'action sera effectuée toutes les quatre heures. Cela revient à spécifier0, 4, 8, 12, 16, 20
. Au lieu d'un astérisque devant l'opérateur de barre oblique, vous pouvez également utiliser une plage de valeurs,1-30/10
signifie la même chose que1, 11, 21
.
Fichiers Crontab à l'échelle du système
La syntaxe des fichiers crontab à l'échelle du système est légèrement différente de celle des fichiers crontabs utilisateur. Il contient un champ utilisateur obligatoire supplémentaire qui spécifie quel utilisateur exécutera le travail cron.
Il existe plusieurs macros de planification Cron spéciales utilisées pour spécifier des intervalles communs. Vous pouvez utiliser ces raccourcis à la place de la spécification de date à cinq colonnes. La commande crontab vous permet d'installer ou d'ouvrir un fichier crontab pour le modifier. Vous pouvez utiliser la commande crontab pour afficher, ajouter, supprimer ou modifier des tâches cron à l'aide des options suivantes: La commande crontab ouvre le fichier crontab à l'aide de l'éditeur spécifié par les variables d'environnement
Le démon cron définit automatiquement plusieurs variables d'environnement. Les administrateurs système peuvent contrôler quels utilisateurs ont accès à la commande
Par défaut, seul le fichier
Si le fichier
Si aucun fichier n'existe, seuls les utilisateurs disposant de privilèges administratifs peuvent utiliser la commande
Vous trouverez ci-dessous quelques exemples de tâches cron qui vous montreront comment planifier une tâche à exécuter sur différentes périodes. Exécutez une commande à 15h00 tous les jours du lundi au vendredi: Exécutez un script toutes les 5 minutes et redirigez la sortie standard vers
Exécutez deux commandes chaque lundi à 15 heures (utilisez l'opérateur
Exécutez un script PHP toutes les 2 minutes et écrivez la sortie dans un fichier: Exécutez un script tous les jours, toutes les heures, à l'heure, de 8 h à 16 h: Exécutez un script le premier lundi de chaque mois, à 7 h. Exécutez le script à 21h15, les 1er et 15 de chaque mois: Définissez des variables
Vous avez appris à créer des tâches cron et à planifier des tâches à une date et une heure spécifiques. N'hésitez pas à laisser un commentaire si vous avez des questions.
* * * * * command(s)
* * * * * command(s)
Macros prédéfinies
@yearly
(or
@annually
) - Exécutez la tâche spécifiée une fois par an à minuit (00h00) du 1er janvier. Équivalent à
0 0 1 1 *
.
@monthly
- Exécute la tâche spécifiée une fois par mois à minuit le premier jour du mois. Équivalent à
0 0 1 * *
.
@weekly
- Exécute la tâche spécifiée une fois par semaine à minuit le dimanche. Équivalent à
0 0 * * 0
.
@daily
- Exécute la tâche spécifiée une fois par jour à minuit. Équivalent à
0 0 * * *
.
@hourly
- Exécute la tâche spécifiée une fois par heure au début de l'heure. Équivalent à
0 * * * *
.
@reboot
- Exécute la tâche spécifiée au démarrage du système (au démarrage).Commande Linux Crontab
crontab -e
- Modifier le fichier crontab, ou en créer un s'il n'existe pas déjà.
crontab -l
- Affiche le contenu du fichier crontab.
crontab -r
- Supprime votre fichier crontab actuel.
crontab -i
- Supprimez votre fichier crontab actuel avec une invite avant la suppression.
crontab -u
VISUAL
ou
EDITOR
.Variables Crontab
PATH=/usr/bin:/bin
. Si la commande que vous appelez est présente dans le chemin spécifié par cron, vous pouvez utiliser le chemin absolu de la commande ou modifier la variable cron
$PATH
. Vous ne pouvez pas implicitement ajouter
:$PATH
comme vous le feriez avec un script normal. Le shell par défaut est défini sur
/bin/sh
. Vous pouvez définir un autre shell en changeant la variable
SHELL
appelle la commande à partir du répertoire personnel de l'utilisateur. La variable
HOME
peut être remplacée par des paramètres dans la crontab. La notification par e-mail est envoyée au propriétaire de la crontab. Pour remplacer le comportement par défaut, vous pouvez utiliser la variable d'environnement
MAILTO
avec une liste (séparée par des virgules) de toutes les adresses électroniques auxquelles vous souhaitez recevoir les notifications par courrier électronique. Si
MAILTO
est défini mais vide (
MAILTO=""
), aucun courrier n'est envoyé.Restrictions Crontab
crontab
en utilisant les fichiers
/etc/cron.deny
et
/etc/cron.allow
. Les fichiers se composent d'une liste de noms d'utilisateurs, un nom d'utilisateur par ligne.
/etc/cron.deny
existe et est vide, ce qui signifie que tous les utilisateurs peuvent utiliser la commande crontab. Si vous souhaitez refuser l'accès aux commandes crontab à un utilisateur spécifique, ajoutez le nom d'utilisateur à ce fichier.
/etc/cron.allow
existe, seuls les utilisateurs répertoriés dans ce fichier peuvent utiliser la commande
crontab
.
crontab
.Exemples de tâches Cron
0 15 * * 1-5 command
dev null
, seule l'erreur standard sera envoyée à l'adresse e-mail spécifiée:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
entre les commandes):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
HOME
,
PATH
,
SHELL
et
MAILTO
et exécutez une commande toutes les minutes.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
Conclusion
Microsoft profite en vendant des publicités en ligne sur son moteur de recherche à des gangs criminels gérant des sites Web pharmaceutiques offrant des médicaments Selon une nouvelle étude, Microsoft vend des publicités en ligne sur son moteur de recherche à des gangs criminels qui gèrent des sites Web pharmaceutiques offrant des médicaments à des personnes sans ordonnance adéquate.
Environ 89,7% des Selon le rapport, les pharmacies qui paient des publicités sur le dernier moteur de recherche de la société, Bing.com, sont frauduleuses ou se livrent à des activités illégales. KnujOn, une compagnie antispam, et LegitScript, qui offre un service qui vérifie la légitimité de certaines pharmacies en ligne, ont publié le rapport.
Microsoft prend au sérieux les allégations selon lesquelles des partenaires commerciaux se livrent à des pots-de-vin pour obtenir des marchés publics dans trois pays en dehors des États-Unis, le Microsoft a pris mardi au sérieux les accusations selon lesquelles des partenaires commerciaux se seraient livrés à des pots-de-vin pour obtenir des marchés publics dans trois pays en dehors des Etats-Unis, a annoncé mardi le Wall Street Journal. la Securities and Exchange Commission des États-Unis enquê
[Lectures supplémentaires: Votre nouvel ordinateur a besoin de ces 15 programmes gratuits et excellents]
Ajouter des effets de couleur à la barre des tâches de Windows 7 avec les effets de couleur de la barre des tâches à votre barre des tâches de Windows 7.
Les effets de couleur de la barre des tâches