Hay dos formas de editar uno crontab
:
interactivamente, usando crontab -e
, que abrirá crontab
en el editor especificado por $VISUAL
o $EDITOR
, o
de forma no interactiva, usando crontab crontab.txt
, lo que simplemente importará las crontab
entradas del archivo crontab.txt
, reemplazando el crontab activo existente para el usuario actual.
El problema que tiene es que simplemente está usando el crontab
comando 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 PATTERN
es una expresión regular que coincidirá con las tareas que desea eliminar. Aquí, crontab -l
te daremos tu actual crontab
.
O, si tiene entradas en un archivo llamado crontab-fragment.txt
que 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.txt
en el directorio actual (usando una comparación de cadena de línea completa). El resultado se guarda crontab.txt
y 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.txt
contiene las entradas que desea agregar. Lee el crontab actual, agrega las entradas de crontab-fragment.txt
a esto y crea crontab.txt
. El crontab.txt
archivo luego reemplaza el crontab actual.