Il y a deux façons de modifier sa version crontab:
de manière interactive, en utilisant crontab -e, qui ouvrira crontabl'éditeur dans l'éditeur spécifié par $VISUALou $EDITOR, ou
de manière non interactive, en utilisant crontab crontab.txt, qui importera simplement les crontabentré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 crontabcommande 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 -lvous 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.txtdans le répertoire en cours (en utilisant une comparaison de chaîne de ligne complète). Le résultat est enregistré crontab.txtpuis 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.txtcontient 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.txtfichier remplace alors la crontab actuelle.