¿Por qué `crontab -` elimina crontab, y se puede cancelar?

8

Me apresuré y se olvidó el correo en crontab -eantes de chocar Enter.

Apareció un mensaje, así que cerré con Ctrl+ D, igual que normalmente salgo de los mensajes de entrada.

Ahora, sin previo aviso, todo mi crontab está vacío.

¿Por qué? ¿Qué lógica hizo que esto sucediera? ¿Cómo debo cerrar las solicitudes que no sean Ctrl+ Dpara que no se guarde nada?

Redsandro
fuente
2
¿Qué dijo el aviso?
Michael Hampton

Respuestas:

7

Control+Cen este caso, abortará crontaby no borrará las entradas actuales de crontab. De lo contrario, el bare -es una indicación común en Unix de que la entrada debe leerse desde la entrada estándar y Control+Dcierra la entrada estándar, lo que resulta en el archivo crontab vacío, ya que no se canalizó nada en la entrada estándar.

Una entrada de usuario crontab a lo largo de las líneas de

@daily crontab -l > $HOME/.cron.`hostname`

puede ayudar contra tales operaciones futuras al proporcionar una copia de seguridad de los datos de crontab (o puede volverse loco con el control de versiones, o por complejo que desee que sea la copia de seguridad).

thrig
fuente
15

Reemplazó su crontab con contenido de stdin, que estaba vacío. Es esencialmente igual que crontab < /dev/null.

Presionar Ctrl + C podría ser un mejor hábito.

Su crontab probablemente se haya ido. La copia de seguridad podría estar en algún lugar /var/spool/cron, pero no conozco ningún demonio cron que mantenga copias de seguridad. Debe configurar copias de seguridad de /var/spool/cronsi es importante para usted.

rvs
fuente