Chronique d'Alain01, le cronTab

Date 07/02/2013 | Sujet : Divers

J'avais prévu un article sur le design mais j'ai vu dans les forums que le mot "cron" et "crontab" revenaient assez souvent, et que pour certains, cela n'était pas très clair.

Je vais tenter ici d'éclairer votre lanterne...
"Cron" est un programme ("daemon crond") qui permet à un utilisateur d'exécuter des commandes à des intervalles de temps donnés.
L'utilisateur se basera sur "crontab" pour configurer les tables qui indiqueront :
- le script à lancer
- la date et l'heure de lancement
- la fréquence (récurrence)

Exemple :
Je souhaite faire une copie du dossier /home/alain01/www/dossier-docs vers /home/alain01/sauve/ avec comme nom dossier-docs-annee_mois_jour, chaque vendredi, à 23h15

Pour utiliser crontab, ce qu'il faut :

- Soit un hébergeur qui propose une interface en ligne pour utiliser le cron :
--> ici chez OVH
--> ici chez Infomaniak
--> ici avec une interface CPanel
--> ici avec une interface Plesk
--> Ici avec l'interface de Webmin

- Soit vous avez accès en ssh à votre hébergement ou bien même à votre propre serveur linux et donc vous pourrez utiliser cron en ligne de commande (via ssh)

- Soit vous pouvez utiliser un module existant, XOOPSCARE, qui gère le cron, mais il faudra tout de même que votre hébergement vous autorise à utiliser le cron et connaitre le chemin de l'exécutable cron.

Si c'est avec une interface, c'est assez simple.
Globalement, vous indiquez le chemin du script (shell) que le cron va exécuter et vous programmez la date et l'heure d'exécution, avec possibilité de rendre récurrent cette action.

Exemple de récurrence :
- Tout les jours à 16h00
- Tout les mardi à 8h45
- Tout les 5 du mois

Script shell : sauve_docs
cp -Rp /home/alain01/www/dossier-docs/* /home/alain01/sauve/'date + %F'/.



Crontab en ligne de commande :

crontab -l
La ligne de commande ci-dessus affiche le contenu de la table cron pour l'utilisateur courant

crontab -e
La ligne de commande ci-dessus permet d'éditer le contenu de la table cron pour l'utilisateur courant

Chaque entrée de la table (chaque ligne) correspond à une tâche à exécuter et doit respecter cette notation :
mm hh jj MMM JJJ tâche
où
mm représente les minutes (de 0 à 59)
hh représente l'heure (de 0 à 23)
jj représente le numéro du jour du mois (de 1 à 31)
MMM représente l'abréviation du nom du mois (jan, feb, ...) ou bien le numéro du mois (de 1 à 12)
JJJ représente l'abréviation du nom du jour ou bien le numéro du jour dans la semaine.

Exemple 1
Tous les vendredi à 23h15 :
15 23 * * 5 sauve_docs


Évidemment, je me suis largement inspiré de ma propre expérience et pour la doc de Crontab Wikipedia*/



Cet article provient de Communauté Francophone des Utilisateurs de Xoops
https://www.frxoops.org

L'adresse de cet article est :
https://www.frxoops.org/modules/news/article.php?storyid=1934