10 votes

Exécuter un script tous les jours en utilisant un cronjob

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.

10voto

Adam Points 181

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

6voto

Raman Singh Points 61
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

2voto

bendaf Points 143

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 .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X