Mémo crontab
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 !!!
et aussi :
bonne lecture :)
Postfix créer une blacklist de mail en envoi et reception
Comment tester SpamAssassin
Bloquer la mise à jour d'un paquet Centos ou Redhat
Mysql : Restaurer une seule base avec une sauvegarde qui contient toutes vos bases
Suicide d’Aaron Swartz !
L’ONU veut contrôler Internet à travers le monde entier