Perché `crontab -` rimuove crontab e può essere cancellato?


8

Mi affrettai e dimenticato il e in crontab -eprima mi ha colpito Enter.

È apparso un prompt, quindi ho chiuso con Ctrl+ D, come di solito esco dai prompt di input.

Ora, senza preavviso, il mio intero crontab è vuoto.

Perché? Quale logica ha causato ciò? Come devo chiudere prompt diversi da Ctrl+ in Dmodo che nulla venga salvato?


2
Cosa ha detto il prompt?
Michael Hampton,

Risposte:


7

Control+Cin questo caso interromperà crontabe non cancellerà le voci crontab correnti. Altrimenti, il nudo -è un'indicazione comune su Unix che l'input dovrebbe essere letto dallo standard input e Control+Dchiude l'input standard, risultando nel file crontab vuoto, poiché nulla è stato inserito nell'input standard.

Una voce crontab dell'utente lungo le righe di

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

può aiutare contro eventuali future oopsie fornendo una copia di backup dei dati crontab (oppure puoi scatenarti con il controllo della versione, o per quanto complesso desideri che il backup sia).


15

Hai sostituito il tuo crontab con contenuti di stdin, che era vuoto. È essenzialmente lo stesso di crontab < /dev/null.

Premere Ctrl + C potrebbe essere un'abitudine migliore.

Molto probabilmente il tuo crontab è scomparso. Il backup potrebbe trovarsi da qualche parte /var/spool/cron, ma non conosco alcun demone cron che mantenga i backup. È necessario impostare i backup di /var/spool/cronse è importante per te.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.