Hay dos formas de editar uno crontab:
interactivamente, usando crontab -e, que abrirá crontaben el editor especificado por $VISUALo $EDITOR, o
de forma no interactiva, usando crontab crontab.txt, lo que simplemente importará las crontabentradas del archivo crontab.txt, reemplazando el crontab activo existente para el usuario actual.
El problema que tiene es que simplemente está usando el crontabcomando incorrectamente.
Lo siguiente se refiere a la manipulación de crontab no interactiva:
Entonces, para eliminar tareas particulares mediante programación, podrías hacer algo como
$ crontab -l | grep -v 'PATTERN' >crontab.txt && crontab crontab.txt
donde PATTERNes una expresión regular que coincidirá con las tareas que desea eliminar. Aquí, crontab -lte daremos tu actual crontab.
O, si tiene entradas en un archivo llamado crontab-fragment.txtque desea eliminar del crontab activo,
$ crontab -l | grep -v -Fx -f crontab-fragment.txt >crontab.txt && crontab crontab.txt
Esto lee el crontab actual y filtra (elimina) cualquier línea que también ocurra en el archivo crontab-fragment.txten el directorio actual (usando una comparación de cadena de línea completa). El resultado se guarda crontab.txty luego se carga desde allí para reemplazar el crontab actual.
Para agregar una o varias tareas , haga algo como
$ crontab -l | cat - crontab-fragment.txt >crontab.txt && crontab crontab.txt
Esto supone que el archivo crontab-fragment.txtcontiene las entradas que desea agregar. Lee el crontab actual, agrega las entradas de crontab-fragment.txta esto y crea crontab.txt. El crontab.txtarchivo luego reemplaza el crontab actual.