Il y a deux façons de modifier sa version crontab
:
de manière interactive, en utilisant crontab -e
, qui ouvrira crontab
l'éditeur dans l'éditeur spécifié par $VISUAL
ou $EDITOR
, ou
de manière non interactive, en utilisant crontab crontab.txt
, qui importera simplement les crontab
entrées du fichier crontab.txt
, remplaçant la crontab active existante pour l'utilisateur actuel.
Le problème que vous avez est que vous utilisez simplement la crontab
commande de manière incorrecte.
Ce qui suit concerne la manipulation non interactive de crontab:
De manière à supprimer des tâches particulières par programme, vous pouvez faire quelque chose comme
$ crontab -l | grep -v 'PATTERN' >crontab.txt && crontab crontab.txt
où PATTERN
est une expression régulière qui correspondra aux tâches que vous souhaitez supprimer. Ici, crontab -l
vous donnera votre courant crontab
.
Ou, si vous avez des entrées dans un fichier appelé crontab-fragment.txt
que vous souhaitez supprimer de la crontab active,
$ crontab -l | grep -v -Fx -f crontab-fragment.txt >crontab.txt && crontab crontab.txt
Cela lit la crontab actuelle et filtre (supprime) toute ligne qui se produit également dans le fichier crontab-fragment.txt
dans le répertoire en cours (en utilisant une comparaison de chaîne de ligne complète). Le résultat est enregistré crontab.txt
puis chargé à partir de là pour remplacer la crontab actuelle.
Pour ajouter une ou plusieurs tâches , faites quelque chose comme
$ crontab -l | cat - crontab-fragment.txt >crontab.txt && crontab crontab.txt
Cela suppose que le fichier crontab-fragment.txt
contient les entrées que vous souhaitez ajouter. Il lit la crontab actuelle, ajoute les entrées de crontab-fragment.txt
à ceci et crée crontab.txt
. Le crontab.txt
fichier remplace alors la crontab actuelle.