Je souhaite planifier l'exécution régulière d'une tâche et j'ai appris que Cron était le moyen de le faire.
Comment puis-je ajouter des emplois Cron dans Ubuntu?
Mettez 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 exemple deux fois par mois ou toutes les 5 minutes. Allez au terminal et tapez:
crontab -e
Cela ouvrira votre crontab personnelle (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 sa planification, et le format est assez simple lorsque vous maîtrisez la situation. La structure est:
minute hour day-of-month month day-of-week command
Pour tous les numéros, vous pouvez utiliser des listes, par exemple, 5,34,55
dans le champ des minutes, cela signifie que vous courez à 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 suit: */20
. Cet exemple signifie tous les 20, alors dans la colonne des minutes, il est équivalent 0,20,40
.
Donc, pour exécuter une commande tous les lundis à 5h30 de l'après-midi:
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, 0 étant le dimanche.
Vous pouvez en lire plus ici .
*/15 * * * * /path/to/command
, vous pouvez le faire@reboot /path/to/command
pour exécuter quelque chose au démarrage.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 une crontab utilisateur que vous pouvez éditer en exécutant
EDITOR="gedit" crontab -e
(qui utilisera gedit pour éditer le fichier crontab) ou simplementcrontab -e
(qui utilisera l'éditeur par défaut). dans un terminal.Si vous voulez exécuter quelque chose toutes les 10 minutes, par exemple, vous ajoutez une ligne comme celle-ci.
et enregistrez le fichier.
Vous pouvez voir le contenu de la crontab utilisateur avec
crontab -l
.Pour ajouter un travail cron qui s'exécute en tant que root, vous pouvez éditer la crontab de root en exécutant
sudo crontab -e
.La méthode la plus flexible consiste à utiliser la crontab système,
/etc/crontab
que vous ne pouvez modifier qu'avec les privilèges root. Dans ce fichier, l'utilisateur doit exécuter chaque commande comme spécifié, afin que vous puissiez exécuter vos commandes en tant que root (si vous avez besoin de ce niveau de privilège) ou de tout autre utilisateur du système.Par exemple, si vous voulez exécuter quelque chose toutes les 10 minutes en tant que root, vous devez ajouter une ligne comme celle-ci.
(notez l'ajout de l'utilisateur à la ligne)
Vous pouvez voir le contenu du fichier crontab du système avec
cat /etc/crontab
.Plus de détails sur: https://help.ubuntu.com/community/CronHowto
la source
Si vous préférez le faire à l'aide d'une interface graphique, vous pouvez accéder au Centre de logiciel et installer des 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.
la source
Je recommande le planificateur de tâches de KDE (
kde-config-cron
) . Vous pouvez y accéder depuis les paramètres système du module Planificateur de tâches .Il gère à la fois 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.
la source
Le planificateur de tâches KDE ne fonctionnera pas dans Ubuntu normal. Cela ne fonctionne que dans les systèmes KDE tels que KUbuntu. Pour les systèmes non KDE, vous préférerez utiliser gnome-schedule
L'application est tâches planifiées dans le tableau de bord.
la source
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/… . Il suffit de jouer$ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb
Je voulais configurer un travail Cron pour qu'il s'exécute via un script bash. L'exécution du script ajouterait donc un travail cron.
J'ai réalisé que lorsque vous utilisez:
Ensuite, il crée le fichier:
/var/spool/cron/crontabs/root
Où root est le nom de l'utilisateur qui exécute la commande crontab. Donc, sur cette base et au moins en 14.04, nous pouvons exécuter les commandes bash suivantes pour créer un nouveau travail Cron:
Nous devons également définir le propriétaire correct du fichier:
Et définissez les autorisations correctes:
Si, lorsque vous exécutez
crontab -e
, des travaux Cron figurent déjà dans la liste, vous pouvez les ajouter à la liste à l'aide de la commande suivante:la source
Exemple de script exécuté
test_cron.sh
par cron toutes les minutes sur Ubuntu 18.04 à l'aide d'un lien symbolique:test_cron.sh
fichier:Si vous souhaitez utiliser des variables d'environnement dans votre script comme
$USER
dans des chemins, il est préférable de taper chemin précis, bash ne connaîtra pas vos variables au moment de l'exécution.myname
est le nom d’utilisateur (fait partie du groupe racine, je ne suis pas sûr que les privilèges root soient nécessaires).Autoriser les utilisateurs à définir des tâches cron, un fichier sera créé si nécessaire:
Le chemin du script est
/home/myname/shell/test_cron.sh
J'ai changé le propriétaire et l'ai rendu exécutable:
J'ai ajouté un lien symbolique:
Connecté en tant que
myname
j'ai ajouté une nouvelle tâche à exécutertest_cron
chaque minute.Pour vérifier si la commande dans la liste:
Pour vérifier l'exécution
la source