J'ai besoin du code exact que j'utiliserais car je n'arrive pas à le comprendre. J'utilise crontab -e
pour mettre en place une tâche cron, mais lorsque je l'enregistre, elle ne fonctionne jamais. J'essaie également d'exécuter un fichier appelé newmail.sh
à partir de l'utilisateur root.
Réponses
Trop de publicités?Si vous vouliez que la tâche s'exécute tous les jours à 15h17, vous utiliseriez en /etc/crontab
ou des fichiers dans /etc/cron.d
:
17 15 * * * root newmail.sh
Cela dit "exécuter newmail.sh en tant que root tous les jours de la semaine, tous les jours du mois, tous les mois à 15h17".
minute heure dom mois dow utilisateur cmd
minute - Ceci contrôle la minute de l'heure à laquelle la commande sera exécutée, et est compris entre '0' et '59'.
hour - Ceci contrôle l'heure à laquelle la commande sera exécutée, et est spécifié dans l'horloge de 24 heures, les valeurs doivent être entre 0 et 23 (0 est minuit)
dom - C'est le jour du mois auquel vous voulez que la commande soit exécutée, par exemple, pour exécuter une commande le 19 de chaque mois, le dom sera 19.
month Il s'agit du mois sur lequel la commande spécifiée sera exécutée, il peut être spécifié numériquement (0-12), ou comme le nom du mois (par exemple mai)
dow - Il s'agit du jour de la semaine auquel vous souhaitez qu'une commande soit exécutée, il peut également être numérique (0-7) ou sous la forme du nom du jour (par exemple soleil).
user - Il s'agit de l'utilisateur qui exécute la commande.
cmd - Il s'agit de la commande que vous souhaitez exécuter. Ce champ peut contenir plusieurs mots ou espaces.
de : http://www.unixgeeks.org/security/newbie/unix/cron-1.html
sudo crontab -e
Ajoutez ces lignes à la fin du fichier
*/1 * * * * wget -O /dev/null project_crone_URL
(Exécuter cron par une fois dans 1 minute)
0 0 * * * wget -O /dev/null project_crone_URL
(Exécuter cron par une fois dans 24 heures)
enregistrer le fichier
Lancez la crontab par cette commande
sudo /etc/init.d/cron start
Arrêtez crontab par cette commande
sudo /etc/init.d/cron stop
Redémarrez crontab par cette commande
sudo /etc/init.d/cron restart
Si vous utilisez crontab -e
depuis Ubuntu 16.0+. n'aura pas le champ utilisateur, donc le format correct est :
17 15 * * * newmail.sh
Cela dit "exécuter newmail.sh chaque jour de la semaine, chaque jour du mois, chaque mois à 15h17".
Autres moyens La réponse de dm78 est correct et contient la description exacte du format.
Aussi si quelque chose ne va pas et que vous avez un système de messagerie installé, il vous enverra un message. Pour plus d'informations, voir cette réponse
Si vous êtes intéressé par journalisation de cronjobs, vous pouvez utiliser cette réponse .