Memulihkan pekerjaan cron yang tidak sengaja dihapus dengan crontab -r

64

Saya masuk crontab -rsebagai gantinya crontab -edan semua cronpekerjaan saya telah dihapus.

Apa cara terbaik (atau ada satu) untuk memulihkan pekerjaan itu?

Teerath Kumar
sumber
30
Apakah hanya saya atau tidak, lebih masuk akal jika crontab -r bertanya ya / tidak secara default ??
user1446688
4
Saya pikir memiliki prompt ya / tidak akan menjadi ide bagus. terutama karena e & r berada tepat di sebelah satu sama lain .. dan crontab -emerupakan perintah cron yang sangat umum.
JustinP
4
Dalam 7 tahun atau lebih admin bekerja, saya tidak pernah mengalami hal ini pada saya. Sekarang saya takut. Saatnya untuk mulai membuat cadangan crontab secara teratur.
Caja
7
Ini sudah terjadi pada saya dua kali. Ini adalah ide terburuk yang pernah ada euntuk diedit dan runtuk dihapus dengan benar-benar tidak cepat sama sekali !!
DaniG2k
9
Hal pertama yang harus dilakukan alias crontab=crontab -i,. Tapi crontab seharusnya membuat default itu, mengingat bahwa e & r bersebelahan ...
anishsane

Jawaban:

49

crontab -r menghapus satu-satunya file yang berisi tugas cron.

Jadi, jika Anda tidak membuat cadangan, satu-satunya pilihan pemulihan Anda adalah:

  • Pada RedHat / CentOS, jika pekerjaan Anda telah dipicu sebelumnya, Anda dapat menemukan cron login /var/log/cron. File akan membantu Anda menulis ulang pekerjaan lagi.
  • Pilihan lain adalah memulihkan file menggunakan alat pemulihan file. Ini sepertinya kurang berhasil, karena partisi sistem biasanya sibuk dan sektor terkait mungkin telah ditimpa.
  • Di Ubuntu / Debian, jika tugas Anda telah berjalan sebelumnya, coba grep CRON /var/log/syslog
SkyDan
sumber
Saya tidak dapat memilih Anda, tetapi jawaban ini bermanfaat bagi saya. thankx
Teerath Kumar
1
@RajaRassani Anda dapat menandai jawabannya adalah yang benar dengan tanda centang. Terima kasih atas umpan baliknya!
SkyDan
ini baru saja terjadi pada saya :) total gelandangan .. Saya menggunakan server virtual dan mencadangkannya secara teratur..jadi saya akan memutar cadangan .. dan mendapatkan crontab yang dihapus
JustinP
+1 karena langsung:}
namezero
Anda dapat mencoba keberuntungan Anda mencari cadangan yang dibuat oleh editor di /tmp/crontab.wpMhKS (tentu saja nama dapat berubah). Ini mungkin bukan versi terbaru tetapi dalam kasus saya ini sangat membantu
Jong Bor
21

Jika Anda tidak memiliki /var/log/cronfile, Anda dapat memulihkan perintah (tetapi bukan timing) dari syslog.

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

Anda kemudian dapat mencari tahu sebagian besar waktu dengan melihat stempel data.

meong
sumber
1
Di ubuntu file tersebut /var/log/syslog.
Aurelijus Rozenas
@ Aurelijus Rozenas Saya tidak sengaja menambahkan sys ke jalur direktori seharusnya / var / log / syslog, saya memperbaiki posting saya.
Meow
2
grep 'CRON.*(yourusername)' /var/log/syslog
Aidan
@Aidin kamu adalah penyelamatku! Catatan untuk diri sendiri: Jangan pernah mengedit file crontab saat ruang server penuh.
Shadoath
1
Fiuh itu sudah dekat! Saya sekarang telah menambahkan cron untuk membuat cadangan crontab saya setiap hari :)
SidJ
-5

vi /var/spool/cron/*user*atau jika Anda rootpenggunavi /var/spool/cron/root

pengguna120610
sumber
3
Ini lebih buruk. Itu mengedit file spool tanpa memberitahukan cronbahwa file tersebut telah diedit. Itu juga tidak akan berfungsi ketika pengguna secara tidak sengaja menghapusnya crontabkarena tidak ada file untuk diedit.
roaima
Suara positif dari saya untuk benar-benar menyatakan lokasi crontab. Saya memiliki cadangan seluruh sistem dan dapat dengan mudah mengambil cronjobs saya. Terima kasih!
Cookie