02déc.2009
Memo Crontab

ça peut aider 
Crontab

A mettre dans votre Crontab comme pense bête :
# minute (0...59) # | heure (0...23) # | | jour (1...31) # | | | mois (1...12) # | | | | jour de la semaine (0...6 avec 0=Dimanche) # | | | | | commandes
Afficher son cron :
chose importante a faire lorsque vous rencontrez un serveur pour la première fois.
crontab -l
Editer son cron :
crontab -e
Editer le cron d'un autre utilisateur, c'est pas gentil... :
crontab -e -u amavis
Exemple :
Simple, on sauvegarde tous les jours à 13h toutes les bases du serveur mysql d'en un fichier.
00 13 * * * mysqldump -u root -ppassword --all-databases > /data3/mysqld-dump/mysqld-dump-all-base.sql
Voici d'autres exemples ne tenez pas compte de la commande shell :
- Tous les jours à 22h00 :
00 22 * * * ls >>/tmp/log.txt
- Toutes les heures, passées de 5 minutes :
5 * * * * ls >>/tmp/log.txt
- Tous les premiers du mois à 23h30 :
30 23 1 * * ls >>/tmp/log.txt
- Tous les lundis à 22h28 :
28 22 * * 1 ls >>/tmp/log.txt
- Du 3 au 15 de chaque mois à 10h12 :
12 10 3-15 * * ls >>/tmp/log.txt
- Tous les jours pairs du mois à 23h59 :
59 23 */2 * * ls >>/tmp/log.txt
- Toutes les 1 minutes :
*/1 * * * * ls >>/tmp/log.txt
- Tous les derniers jours du mois (l'antislash devant % est obligatoire en édition de crontab, contrairement à l'exécution la commande manuellement) :
0 0 28-31 * * [ `/bin/date +\%d` -gt `/bin/date +\%d -d "1 day"` ] && ls >>/tmp/log.txt
- Tous les derniers dimanches du mois :
0 0 * * 0 [ `/bin/date +\%d` -gt `/bin/date +\%d -d "7 day"` ] && ls >>/tmp/log.txt
Lister tous les crons de tous les utilisateurs :
alias cronall='for user in $(cut -f1 -d: /etc/passwd)'; do echo -e "\n\n==> $user:" && crontab -u $user -l; done cronall
Pour les crons périodiques (cron.daily, cron.weekly, etc.) qui sont dans des répertoires distincts et non liés à un utilisateur mais au système. Pour lister ces crons une commande simple suffira pour trouver ce que vous cherchez :
cat /etc/cron.d/* | grep "votre recherche"
De même que pour lister tous les scripts (sans le contenu) :
ls -al /etc/cron.*
Bon à savoir pour un peu de sécurité, ça gâche rien, vous avez la possibilité d'utiliser /etc/cron.allow et /etc/cron.deny.
Il faudra les créer vous même, si seul le fichier /etc/cron.allow existe, alors uniquement les utilisateurs qui sont listés dans ce fichier auront le droit d'utiliser cron.
Ne pas laissez le fichier /etc/cron.deny vide si vous n'avez pas bien renseigné correctement votre fichier /etc/cron.allow.
Aller plus loin : avec wikipedia quelques exemples de cet article sont tirés de cette url.
Les différences entre les logiciels de crontab par Gentoo : ici
à vos crons !!!

Commentaires
vendredi, décembre 11 2009 | 16:22
Merci pour ce mémo ! (j'adore le pense bête :D)
mardi, juin 1 2010 | 17:23
moi j'aime bien
@reboot Au démarrage