supression des redondances

This commit is contained in:
btatu 2022-06-15 11:32:38 +02:00
parent 65bcf2bb3e
commit 30c15402a9

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. > 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 -e
# crontab -u jdoe -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 minutes heures jours mois jour/semaine commande
@ -104,34 +116,19 @@ Exemples de crontab :
@daily /usr/local/bin/minuit-check @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]().
~~~ ## variables
$ 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
Plusieurs variables peuvent être utilisées dans une crontab : 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 : 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 @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 # log2mail
On peut ajouter la configuration suivante au logiciel log2mail pour détecter d'éventuelles erreurs de syntaxe : 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 mailto = root
~~~ ~~~
# FAQ # FAQ
## Peut-on écrire un cron dans /etc/crontab ? ## Peut-on écrire un cron dans /etc/crontab ?