18
0
Fork 0

supression des redondances

This commit is contained in:
btatu 2022-06-15 11:32:38 +02:00
parent 65bcf2bb3e
commit 30c15402a9
1 changed files with 24 additions and 34 deletions

View File

@ -72,18 +72,30 @@ Pour lancer un script à **une fréquence personnalisée** : il suffit de créer
> Attention : Les noms de scripts contenant des points sont ignorés. Cette particularité est utile pour désactiver un script en ajoutant .disabled comme extension.
## crontab -e
## crontab
Pour ajouter un cron manuellement, on conseille d'utiliser la commande :
Cette commande permet déditer/lister/supprimer les tâches planifiées gérées par le service cron et son automatiquement liée à des comptes utilisateurs. Elles sont conservées dans /var/spool/cron/. L'avantages de cette commande est la vérification syntaxique en quittant l'éditeur.
Pour ajouter une tâche cron :
~~~
$ crontab -e
# crontab -u jdoe -e
crontab -e
~~~
L'un des avantages de cette commande est que la syntaxe sera vérifiée en quittant l'éditeur.
> Attention : Méfiez-vous de la touche "r" qui est proche de la touche "e" sur un clavier Azerty ou Qwerty où `crontab -r` efface définitivement toute votre crontab!
Pour lancer une commande à une fréquence personnalisée, la syntaxe est :
Pour lister les tâches cron :
~~~
crontab -l
~~~
## La syntaxe
On peut s'aider de [crontab guru](https://crontab.guru/) pour être sûr de ne pas faire d'erreur sur l'horaire.
Plus en détail, la syntaxe complète est :
~~~
minutes heures jours mois jour/semaine commande
@ -104,34 +116,19 @@ Exemples de crontab :
@daily /usr/local/bin/minuit-check
~~~
On peut utiliser les mots clés `@hourly`/`@daily`/`@weekly`/`@monthly` pour lancer à la première minute de chaque heure/jour/semaine/mois (à ne pas confondre avec les répertoires /etc/cron.{hourly,daily,weekly,monthly}/ qui sont lancés à des dates particulières).
On peut utiliser les mots clés `@hourly`/`@daily`/`@weekly`/`@monthly` pour lancer à la première minute de chaque heure/jour/semaine/mois (à ne pas confondre avec les répertoires /etc/cron.* qui sont lancés à des dates particulières).
Pour [plus d'informations sur la syntaxe](https://manpages.debian.org/jessie/cron/crontab.5.en.html) :
Pour plus de détails sur les recommandations sur l'écriture de scripts à mettre en crontab voir [TipsDevWeb#scripts-en-crontab]().
~~~
$ man 5 crontab
~~~
Pour lister les crons, on peut utiliser la commande :
~~~
$ crontab -l
# crontab -u jdoe -l
~~~
Pour supprimer tous les crons en place, on peut utiliser `crontab -r`… mais c'est assez rare qu'on l'utilise. Il faut surtout se méfier de ne pas le taper par erreur à la place de `crontab -e` !
Pour plus de détails sur l'utilisation de la commande `crontab` en tant qu'utilisateur, voir [HowtoCrontab](), et pour des recommandations sur l'écriture de scripts à mettre en crontab voir [TipsDevWeb#scripts-en-crontab]().
### variables
## variables
Plusieurs variables peuvent être utilisées dans une crontab :
`PATH` : pour redéfinir le PATH des commandes lancés
`PATH` : redéfinir le PATH des commandes lancés
`SHELL` : par défaut c'est /bin/sh qui est utilisé, on peut vouloir utiliser /bin/bash par exemple
`SHELL` : remplacer le shell /bin/sh utilisé par défaut par /bin/bash par exemple
`MAILTO` : lorsqu'une commande génère une sortie (stdout/stderr), elle est envoyée par email à l'utilisateur. On peut changer l'email destinataire avec cette variable. On pourra notamment mettre une liste à virgule pour envoyer à plusieurs adresses, ou alors `MAILTO=""` pour empêcher l'envoi d'un message.
`MAILTO` : Un email est envoyé à l'utilisateur lorsqu'une commande génère une sortie (stdout/stderr). On peut changer le destinataire ainsi qu'en mettre plusieurs ou empêcher l'envoi d'un message avec `MAILTO=""`.
Ces variables peuvent être définies plusieurs fois, notamment `MAILTO` qui pourra précéder chaque ligne de cron :
@ -144,12 +141,6 @@ MAILTO=alert@example.com
@weekly /usr/local/bin/security-check
~~~
### /var/spool/cron/crontabs/
Les crons positionnés avec `crontab -e` sont stockés dans le répertoire `/var/spool/cron/crontabs/`
C'est notamment utile pour réaliser des sauvegardes des crons lancés sur un serveur.
# log2mail
On peut ajouter la configuration suivante au logiciel log2mail pour détecter d'éventuelles erreurs de syntaxe :
@ -160,7 +151,6 @@ file = /var/log/cron.log
mailto = root
~~~
# FAQ
## Peut-on écrire un cron dans /etc/crontab ?