at et cron

service at

Ex 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

 

 

Service cron et commande crontab
$ 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:
mn h jour-mois mois jour-semaine commande

  • mn = de 0 à 59
  • h    =     0 à 23
  • jour du mois  de 1 à 31
  • mois             de 1 à 12
  • jour de la semaine de 0 à 7 (0 et 7 = dimanche)
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 h
ttp://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

 

http://drupal.org/node/23714

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

 

Poor man's cron intégré dans drupal 7