at et cron
service at
$ at 23:00 at> groscalculdelamort at> $ |
la syntaxe de la commande est at date Ctrl+D |
at now + 2hours at 16:20 tomorrow at 13:14 10/23/02 |
lancer un programme dans deux heures demain à 16:20, le 23 oct 2002 à 13h14 |
$ atq 1 2013-03-14 18:27 a 2 2013-03-15 16:20 a 3 2013-10-23 13:14 a $ |
lister les « jobs » prévus avec atq |
atrm 1 | supprimer une tâche prévue en donnant son identificateur (numéro indiqué dans la 1ere colonne des informations renvoyées par atq |
On peux préparer les commandes dans un fichier texte (commandes.at) avec at -f commandes.at 15:00 tomorrow
service cron
L’interface utilisateur est la commande crontab.
Cron est un daemon utilisé pour programmer des tâches devant être exécutées à un moment précis. Chaque utilisateur a un fichier crontab, lui permettant d'indiquer les actions et à quelles périodes elles devront être exécutées. Il y a également une crontab pour le système, permettant les tâches techniques, pour la mise à jour des différents programmes ou autres besoins périodiques.
Il est conseillé de ne pas modifier /etc/crontab utiliser crontab -e
$ crontab -l no crontab for djobi $ |
voir les taches planifiées |
crontab -r | effacer toutes les taches planifiées |
crontab -e |
définir une (ou plusieurs) tâches planifiées -> lance éditeur (vim)
Chaque ligne:
|
Ex de ligne: 10 0 * * 0 rm -rf ~/.wastebasket/* |
efface tous les dimanches à minuit passé de 10mn, le contenu du rep poubelle ~/.wastebasket |
0 12 30 12 * echo "bon anniv'" | mail pote@truc.net 0 8-18 * * * echo "ça gaze ?" | mail pote@truc.net |
envoie un email tous les 30 décembre midi. envoie un email tous les heures pile de (8h à 18h) |
0 8-18/4 * * 1,3,5 rm -f ~/tmp/* |
efface le rep tmp du user les lundi, mercredi et jeudi et ceci de 8h à 18h, toutes les 4h (et on recoit un email) |
Quand vous sortez de l'éditeur, le nouveau fichier crontab sera installé. Le fichier est stocké dans /var/spool/cron/crontabs/<user> mais doit seulement être édité par l'intermédiaire de la commande crontab.
L'éditeur utilisé pour modifier la crontab peut être modifié par la commande sudo update-alternatives --config editor
Les commandes ci-dessus sont stockées dans un fichier crontab appartenant à votre compte d'utilisateur et exécutées avec votre niveau des permissions. Si vous voulez exécuter, régulièrement, une commande exigeant un plus haut niveau de permission (root), vous devez utiliser le fichier crontab root (ou racine) : sudo crontab -e
Selon les commandes à exécuter, vous devrez changer la variable PATH des utilisateurs ayant les droits root en mettant la ligne suivante au dessus de leurs fichiers crontab PATH=/usr/sbin:/usr/bin:/sbin:/bin
checks
Il est important de vérifier que vos travaux dans cron fonctionnent comme prévu. Une méthode pour faire un test est de paramétrer le travail dans la crontab pour qu'il se fasse quelques minutes plus tard et de vérifier les résultats, avant de mettre la synchronisation de cette tâche à la bonne heure. Vous pouvez également trouver utile de mettre les résultats des commandes dans un fichier texte qui notent les succès ou les échecs, par ex :
echo "Sauvegarde de nuit: $(date)" >>/tmp/mybackup.log
NOTA IMPORTANT: Dans le cas où votre crontab refuserait de s'exécuter, vérifiez que vous disposez bien du package mailutils. En effet, cron logue ses actions en envoyant un mail à l'utilisateur courant. sudo apt-get install mailutils
et si ça ne marche toujours pas alors il se peut que le démon cron soit planté, il faut le réinitialiser en faisant sudo restart cron
par défaut, les logs sont à /var/log/syslog
pour drupal
# une fois par jour à Minuit
0 0 * * * wget -O - -q -t 1 http://votreSite/cron.php
# une fois par jour à midi
0 12 * * * wget -O - -q -t 1 http://votreSite/cron.php
#toutes les heures
0 * * * * wget -O - -q -t 1 http://votreSite/cron.php
#toutes les 30mn (corrigé)
*/30 * * * * wget -O - -q -t 1 http://votreSite/cron.php
#Quelques commandes utiles
updatedb
locate cron.d
locate crontab
Le -O is "dash capital letter O", not "dash zero". Lowercase o won't work.
Drupal 7 une url sécurisée privée URL - voir Administration > Reports > Status page
0 * * * * wget -O - -q -t 1 http://www.example.com/cron.php ping cette URL à 0 minute, chaque h de chaque jour (chaque mois) tous les jours de la semaine
Ajouter UNE des lines suivantes pour que lynx, wget, ou curl visite votre page cron 45 mn après chaque h :
45 * * * * /usr/bin/lynx -source http://ex.com/cron.php
45 * * * * /usr/bin/wget -O - -q -t 1 http://www.ex.com/cron.php
45 * * * * curl --silent --compressed http://ex.com/cron.php