Question Comment configurer un travail Cron?


Je veux planifier une tâche à exécuter sur une base régulière et j'ai entendu que Cron est le moyen de le faire.

Comment ajouter des jobs Cron à Ubuntu?


486
2017-08-16 08:25


origine




Réponses:


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. Allez 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 est le dimanche.

Vous pouvez lire plus ici.


600
2017-08-16 08:58



Celles-ci sont à l'échelle du système et exécutées avec des privilèges élevés. Je ne mettrais rien là-bas à moins d'un besoin urgent d'accès ou de permission. En règle générale, essayez de faire des choses sans capacités. Par conséquent, j'aime mieux cette réponse: ubuntu.stackexchange.com/questions/2368/how-do-i-setup-cron-job/… - H Marcelo Morales
@Marcelo Morales, qui exécutera également les commandes données en tant que root! Si vous n'utilisez pas sudo, vous créerez un crontab utilisateur et celui-ci sera exécuté en tant qu'utilisateur qui l'a créé! - LassePoulsen
* / 15 * * * * / path / to / command était très pratique pour moi! Merci! - Andrew Odendaal
Il est important de noter que ces modifications sont appliquées automatiquement, vous n'avez pas besoin de redémarrer / recharger quoi que ce soit. - Molomby
Une autre astuce utile est que, au lieu de */15 * * * * /path/to/command, tu peux faire @reboot /path/to/command afin d'exécuter quelque chose au démarrage. - Kenneth Worden


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 utilisateur que vous pouvez modifier en cours d'exécution 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.

La manière la plus flexible consiste à utiliser le système crontab que vous pouvez éditer en cours d'exécution 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 racine, 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 système crontab avec sudo crontab -l.

Plus de détails à: https://help.ubuntu.com/community/CronHowto


93
2017-08-16 09:21



Voici un bon manipulateur interactif de cron qui vous donnera l'anglais au cron crontab.guru - CTS_AE


Si vous préférez le faire en utilisant une interface graphique, vous pouvez aller au centre de logiciels et installer Tâches planifiées (ou courir 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.


51
2018-01-31 23:59



non disponible pour 16.04 apparemment bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060 - TankorSmash
@TankorSmash Vous pouvez l'obtenir ici - M. Becerra
Les conditions requises ne peuvent pas être satisfaites le 16.04 - Odysseus Ithaca


je recommande Planificateur de tâches de KDE (kde-config-cron)  Install kde-config-cron. Accédez à partir du Les paramètres du système dans le Planificateur de tâches module là.

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.

enter image description here


24
2018-02-11 14:35





Le planificateur de tâches de 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.


11
2017-09-27 20:25



Il n'a pas été trouvé pour Ubuntu 16.04 - SaidbakR
S'il vous plaît jeter un oeil à I can't install gnome schedule on Ubuntu 16.04 @ askubuntu.com/questions/785657/…. Il y a un paquet à télécharger @ bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060/…. Juste effectuer $ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb - Antonio


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

Je me suis rendu compte 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, à partir de cela et au moins de 14.04, 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 vous courez crontab -e il y a déjà des tâches Cron dans la liste, vous pouvez ensuite ajouter à la liste en utilisant la commande suivante:

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

8