Comment configurer un travail Cron?

479

Je veux programmer une tâche à exécuter régulièrement et avoir entendu que Cron est le moyen de le faire.

Comment ajouter des jobs Cron dans Ubuntu?

    
posée Gabriel Solomon 16.08.2010 - 10:25
la source

6 réponses

593

Placez un script shell dans l’un de ces dossiers: /etc/cron.daily , /etc/cron.hourly , /etc/cron.monthly ou /etc/cron.weekly .

Si cela ne vous suffit pas, vous pouvez ajouter des tâches plus spécifiques, par ex. deux fois par mois ou toutes les 5 minutes. Accédez au terminal et tapez:

crontab -e

Cela ouvrira votre crontab personnel (fichier de configuration cron). La première ligne de ce fichier explique tout! Dans chaque ligne, vous pouvez définir une commande à exécuter et son calendrier, et le format est assez simple lorsque vous maîtrisez le processus. La structure est la suivante:

minute hour day-of-month month day-of-week command

Pour tous les numéros, vous pouvez utiliser des listes, par ex. 5,34,55 dans le champ des minutes signifiera courir à 5 heures, 34 heures et 55 heures, quelle que soit l'heure définie.

Vous pouvez également utiliser des intervalles. Ils sont définis comme ceci: */20 . Cet exemple signifie tous les 20, donc dans la colonne des minutes, il est équivalent à 0,20,40 .

Donc, pour lancer une commande tous les lundis à 17h30:

30 17 * * 1 /path/to/command

ou toutes les 15 minutes

*/15 * * * * /path/to/command

Notez que le jour de la semaine va de 0 à 6 où 0 correspond à dimanche.

Vous pouvez en lire plus ici .

    
réponse donnée LassePoulsen 09.03.2018 - 03:07
la source
93

Si le travail que vous souhaitez exécuter peut être exécuté avec les mêmes privilèges que votre utilisateur, je vous recommande d’utiliser un crontab d’utilisateur que vous pouvez éditer en exécutant EDITOR="gedit" crontab -e (qui utilisera gedit pour éditer le fichier). crontab) ou simplement crontab -e (qui utilisera l’éditeur par défaut) dans un terminal.

Si vous souhaitez exécuter quelque chose toutes les 10 minutes, par exemple, vous ajoutez une ligne comme celle-ci

*/10 * * * * /usr/bin/somedirectory/somecommand

et enregistrez le fichier.

Vous pouvez voir le contenu de l'utilisateur crontab avec crontab -l .

Le moyen le plus flexible consiste à utiliser le système crontab que vous pouvez éditer en exécutant sudo crontab -e dans un terminal. Cela vous permettra d'exécuter vos commandes en tant que root (au cas où vous auriez besoin de ce niveau de privilège) ou tout autre utilisateur du système.

Ensuite, si vous voulez exécuter quelque chose toutes les 10 minutes comme root , par exemple, vous ajoutez une ligne comme celle-ci

*/10 * * * * root /usr/bin/somedirectory/somecommand

et enregistrez le fichier. (notez l'ajout de l'utilisateur à la ligne)

Vous pouvez voir le contenu du fichier crontab du système avec sudo crontab -l .

Plus de détails sur: lien

    
réponse donnée Li Lo 16.08.2010 - 10:58
la source
51

Si vous préférez utiliser l'interface graphique, vous pouvez accéder au Software Center et installer Tâches planifiées (ou exécuter sudo apt-get install gnome-schedule ). Il fournira une interface graphique puissante pour ajouter des tâches cron.

Notez que si vous utilisez cette méthode, les tâches par défaut seront exécutées en tant que votre propre utilisateur, pas en tant que root. C'est généralement une bonne chose.

    
réponse donnée Javier Rivera 16.08.2010 - 11:21
la source
23

Je recommande le Planificateur de tâches de KDE ( kde-config-cron ) . Accédez à ce dernier depuis le Paramètres système du module Planificateur de tâches .

Il gère les Crontabs personnels et système, et la facilité de création des limites de temps m'a beaucoup surpris (voir la capture d'écran ci-dessous). Je pense que cette partie est vraiment sous-estimée.

    
réponse donnée gertvdijk 01.02.2013 - 00:59
la source
11

Le Planificateur de tâches KDE ne fonctionnera pas avec Ubuntu standard. Il ne fonctionne que dans les systèmes KDE comme KUbuntu. Pour les systèmes non KDE, vous préférerez utiliser gnome-schedule

$ sudo apt-get install gnome-schedule

L'application est des tâches planifiées dans le tableau de bord.

    
réponse donnée Antonio 11.02.2014 - 15:35
la source
8

Je voulais configurer un travail Cron pour qu'il exécute un script bash, donc l'exécution du script ajouterait un travail cron.

J'ai réalisé que lorsque vous utilisez:

crontab -e 

Ensuite, il crée le fichier:

/var/spool/cron/crontabs/root

Où root correspond au nom de l'utilisateur exécutant la commande crontab. Donc, sur cette base et dans la version 14.04 au moins, nous pouvons exécuter les commandes bash suivantes pour créer un nouveau travail Cron:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

Nous devons également définir la propriété correcte du fichier:

chown root:root /var/spool/cron/crontabs/root

Et définissez les autorisations correctes:

chmod 600 /var/spool/cron/crontabs/root

Si, lorsque vous exécutez crontab -e , la liste contient déjà des travaux Cron, vous pouvez ajouter à la liste à l’aide de la commande suivante:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
    
réponse donnée Craig van Tonder 27.09.2016 - 22:25
la source

Lire d'autres questions sur les étiquettes