Dapat grep | crontab menghancurkan semua pekerjaan?


21

Kolega saya lari grep | crontab. Setelah itu semua pekerjaan menghilang. Sepertinya dia sedang berusaha lari crontab -l.

Jadi apa yang terjadi setelah menjalankan perintah grep | crontab? Adakah yang bisa menjelaskan?

Jawaban:


33

crontabdapat menginstal baru crontabuntuk pengguna yang meminta (atau pengguna yang disebutkan sebagai root) membaca dari STDIN. Inilah yang terjadi dalam kasus Anda.

greptanpa opsi apa pun akan menghasilkan pesan kesalahan pada STDERR seperti biasa dan Anda mengirim STDOUT grepke STDIN crontabyang kosong, maka Anda crontabakan pergi.


4
Beberapa versi crontabmengharuskan Anda untuk menggunakan -nama file untuk membaca dari input standar. Saya berasumsi ini karena terlalu banyak orang yang menghidangkan crontab mereka dengan kesalahan seperti ini.
Barmar

4

Bagaimana dia menghentikan pekerjaan itu? Apakah dia mengetikkan Cc atau Cd? Jika dia mengetik Cd, maka itu setara dengan berjalan crontab < /dev/nulldan Anda telah mengganti file crontab pengguna dengan yang kosong. Di sisi lain, jika Anda membunuh crontabdengan Cc, maka crontab mungkin telah diawetkan, tetapi Anda dapat dengan mudah memeriksanya dengan menjalankan crontab -l.

Semua program ini lakukan adalah mengedit file crontab /var/spool/cron/, jadi jika Anda memiliki cadangan sistem file, Anda bisa mengembalikan file crontab pengguna dari sana.

memperbarui

Saya tidak melihat bahwa tidak ada argumen untuk grep, jadi grep akan kesalahan dan memang file crontab akan terhempas selalu.


1
Anda tidak perlu Cc atau Cd crontab sudah akan hilang
DarkHeart
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.