Recupera cron job per errore rimosso con crontab -r


64

Ho inserito crontab -rinvece di crontab -ee tutti i miei cronlavori sono stati rimossi.

Qual è il modo migliore (o ce n'è uno) per recuperare quei lavori?


30
Sono solo io o non avrebbe più senso per crontab -r chiedere di sì / no di default ??
user1446688,

4
Penso che avere un prompt sì / no sarebbe un'ottima idea. soprattutto perché e & r sono uno accanto all'altro .. ed crontab -eè un comando cron davvero comune.
JustinP,

4
In circa 7 anni di lavoro come amministratore non mi è mai successo. Adesso ho paura. È ora di iniziare il backup dei crontab regolarmente.
Caja,

7
Questo mi è già successo due volte. È la peggior idea che si possa mai avere eper la modifica e rper la rimozione senza nessun tipo di richiesta !!
DaniG2k,

9
La prima cosa da fare alias crontab=crontab -i,. Ma crontab avrebbe dovuto rendere tale impostazione predefinita, dato che e & r sono uno accanto all'altro ...
Anishsane,

Risposte:


49

crontab -r rimuove l'unico file contenente i lavori cron.

Quindi, se non hai effettuato un backup, le tue uniche opzioni di recupero sono:

  • Su RedHat / CentOS, se i lavori sono stati attivati ​​in precedenza, è possibile trovare il login cron /var/log/cron. Il file ti aiuterà a riscrivere nuovamente i lavori.
  • Un'altra opzione è ripristinare il file utilizzando uno strumento di recupero file. Tuttavia, è meno probabile che ciò abbia esito positivo, poiché la partizione di sistema è generalmente occupata e probabilmente i settori corrispondenti sono già stati sovrascritti.
  • Su Ubuntu / Debian, se l'attività è stata eseguita in precedenza, provare grep CRON /var/log/syslog

Non ho potuto votarti, ma questa risposta è stata in qualche modo utile per me. grazie
Teerath Kumar il

1
@RajaRassani Puoi contrassegnare la risposta è corretta con un segno di spunta, però. Grazie per il feedback!
SkyDan,

questo mi è appena successo :) totale bummer .. io uso server virtuali e li eseguo
regolarmente

+1 per essere semplice:}
namezero

Puoi tentare la fortuna cercando un backup fatto dall'editor in /tmp/crontab.wpMhKS (ovviamente il nome potrebbe cambiare). Potrebbe non essere la versione più recente, ma nel mio caso ha aiutato molto
Jong Bor

21

Se non si dispone di alcun /var/log/cronfile, è possibile recuperare i comandi (ma non i tempi) da syslog.

grep 'CRON.*(yourusername)' /var/log/syslog

puoi quindi capire la maggior parte dei tempi guardando i datestamp.


1
Su Ubuntu il file è /var/log/syslog.
Aurelijus Rozenas,

@ Aurelijus Rozenas Ho aggiunto accidentalmente sys al percorso della directory che dovrebbe essere / var / log / syslog, ho corretto il mio post.
Miao il

2
grep 'CRON.*(yourusername)' /var/log/syslog
Aidan il

@Aidin sei il mio salvatore! Nota per sé: non modificare mai il file crontab quando lo spazio del server è pieno.
Shadoath,

1
Accidenti che era vicino! Ora ho aggiunto un cron per eseguire il backup del mio crontab ogni giorno :)
SidJ

-5

vi /var/spool/cron/*user*o se sei l' rootutente alloravi /var/spool/cron/root


3
È peggio. Modifica i file di spool senza notificare cronche il file è stato modificato. Inoltre non funzionerà quando l'utente ha cancellato accidentalmente il proprio crontabperché non è presente alcun file da modificare.
roaima,

Ho espresso il mio voto per aver effettivamente dichiarato la posizione del crontab. Avevo un intero backup del sistema e potevo facilmente recuperare i miei cronjobs. Grazie!
Cookie
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.