Exécuter un script tous les jours à l'aide d'un cronjob

9

J'ai besoin du code exact que j'utiliserais car je ne suis pas en mesure de le comprendre. J'utilise crontab -epour configurer un travail cron mais quand je l'enregistre, cela ne fonctionne jamais. J'essaie également d'exécuter un fichier appelé newmail.shdepuis l'utilisateur root.

user219706
la source
Avez-vous trouvé la réponse à votre question?
bendaf

Réponses:

10

Si vous vouliez que la tâche s'exécute tous les jours à 15 h 17, vous utiliseriez:

17 15 * * * root newmail.sh

Cela dit "exécutez 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 sur laquelle la commande s'exécutera et se situe entre '0' et '59'

hour - Ceci contrôle l'heure à laquelle la commande s'exécutera et est spécifié dans le format 24 heures, les valeurs doivent être comprises entre 0 et 23 (0 est minuit)

dom - Il s'agit du 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 serait 19.

month C'est le mois sur lequel une commande spécifiée s'exécutera, il peut être spécifié numériquement (0-12) ou comme 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 comme nom du jour (par exemple soleil).

utilisateur - 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.

depuis: http://www.unixgeeks.org/security/newbie/unix/cron-1.html

dm78
la source
sur ubuntu 16 et
versions
sur Ubuntu 19, la minute est la première. En outre, il vous avertit de l'heure incorrecte.
kelalaka
5
sudo crontab -e

Ajoutez ces lignes en fin de fichier

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

(Exécutez cron une fois en 1 minute)

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

(Exécutez cron une fois en 24 heures)

enregistrer le fichier

Démarrez 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
Raman Singh
la source
1

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

17 15 * * * newmail.sh

Cela dit "exécutez newmail.sh tous les jours de la semaine, tous les jours du mois, tous les mois à 15h17".

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

De plus, si quelque chose se passe mal et qu'un système de messagerie est 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 .

bendaf
la source
1
Cela dépend de qui vous crontab modifier. Le crontab -etruc n'a pas de champ utilisateur (comme vous le dites correctement) mais le fichier /etc/crontab(le soi-disant système crontab) et les fichiers ci /etc/cron.d - dessous ont un champ utilisateur.
PerlDuck