System-Linux

Aller au contenu | Aller au menu | Aller à la recherche

Memo Crontab

crontab gif

ç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 !!!

Par GanGan | le mercredi, décembre 2 2009 16:30

Commentaires

1. Edouard

vendredi, décembre 11 2009 | 16:22

Merci pour ce mémo ! (j'adore le pense bête :D)

2. batchris

mardi, juin 1 2010 | 17:23

moi j'aime bien

@reboot Au démarrage