web-dev-qa-db-fra.com

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

J'ai besoin du code exact que je voudrais utiliser car je ne suis pas capable de le comprendre. J'utilise crontab -e pour configurer un travail cron, mais lorsque je l'enregistre, cela ne fonctionne jamais. J'essaie aussi simplement d'exécuter un fichier appelé newmail.sh à partir de l'utilisateur root.

8
user219706

Si vous voulez que la tâche soit exécutée tous les jours à 15h17, vous utiliserez:

17 15 * * * root newmail.sh

Cela dit "lancez 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 d'exécution de la commande et se situe entre '0' et '59'

hour - Ceci contrôle l'heure à laquelle la commande sera exécutée et est spécifié dans l'horloge 24 heures. Les valeurs doivent être comprises entre 0 et 23 (0 correspond à minuit).

dom - C’est le jour du mois sur lequel vous souhaitez exécuter la commande, par exemple. pour exécuter une commande le 19 de chaque mois, le dom aurait 19 ans.

month C'est le mois sur lequel la commande spécifiée sera exécutée. Elle peut être spécifiée numériquement (0-12) ou sous le nom du mois (par exemple, mai).

dow - C'est le jour de la semaine sur lequel vous souhaitez exécuter une commande. Il peut également être numérique (0 à 7) ou sous le nom du jour (par exemple, Sun).

user - C'est l'utilisateur qui exécute la commande.

cmd - C'est la commande que vous voulez exécuter. Ce champ peut contenir plusieurs mots ou espaces.

à partir de: http://www.unixgeeks.org/security/newbie/unix/cron-1.html

10
dm78
Sudo crontab -e

Ajouter ces lignes en fin de fichier

*/1 * * * * wget -O /dev/null  project_crone_URL

(Exécutez cron une fois par minute)

0 0 * * * wget -O /dev/null  project_crone_URL

(Exécutez cron une fois par 24 heures)

sauvegarder le fichier

Lancer crontab avec cette commande

Sudo /etc/init.d/cron start

Arrêtez crontab avec cette commande

Sudo /etc/init.d/cron stop

Redémarrez crontab avec cette commande

Sudo /etc/init.d/cron restart
5
Raman Singh

Si vous utilisez crontab -e puisque Ubuntu 16.0 + n'aura pas le champ utilisateur, le format correct est donc:

17 15 * * * newmail.sh

Ceci dit "lancez newmail.sh tous les jours de la semaine, tous les jours du mois, tous les mois à 15h17".

Autres moyens La réponse de dm78 est correcte et contient la description exacte du format.

De plus, 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 la journalisation de cronjobs, vous pouvez utiliser cette réponse .

1
bendaf