วิธีการกู้คืน crontab ที่ถูกลบ


11

ผมพยายามที่จะแก้ไข crontab ใน terminal และฉันตั้งใจพิมพ์แทนcrontab -r crontab -eใครจะเป็นผู้คิดคำสั่งที่อันตรายเช่นนี้จะนั่งถัดจากตัวอักษรเพื่อแก้ไข crontab? ยิ่งกว่านั้นฉันยังคงพยายามหาวิธีที่จะcrontab -rไม่ขอให้คุณยืนยัน?

โดยไม่คำนึงถึงการขาดความน่าเชื่อถือของฉันว่าเป็นไปได้อย่างไรคำถามของฉันคือ: ฉันสามารถกู้ crontab ที่หายไปได้หรือไม่?


สำหรับข้อมูล crontab -r จะลบ crontab โดยไม่แจ้งให้ทราบและ crontab -i จะขอคำยืนยัน
Raman Sailopal

@RamanSailopal ขอบคุณสำหรับข้อมูล นั่นเป็นสิ่งที่อันตรายจริงๆเนื่องจากข้อเท็จจริงที่ว่า -e และ -r อยู่ติดกัน (อย่างน้อยก็ใน qwerty) ...
Miguel Mesquita Alfaiate

1
etckeeperสิ่งเช่นนี้เป็นเหตุผลหนึ่งที่ผมใช้
David Foerster

2
กู้คืนจากการสำรองข้อมูล
PiedPiper

@PiedPiper หากฉันมีการสำรองข้อมูลสิ่งนี้จะไม่เป็นปัญหา ฉันมีโฟลเดอร์ในบ้านที่กำลังสำรองข้อมูล แต่ไม่ใช่ราก crontab นี้
Miguel Mesquita Alfaiate

คำตอบ:


7

คุณสามารถค้นหางาน cron ของคุณได้จากบันทึกหากเคยดำเนินการมาก่อน /var/log/cronตรวจสอบ

คุณไม่มีตัวเลือกการกู้คืนใด ๆ นอกจากเครื่องมือการกู้คืนของบุคคลที่สาม


มีคำแนะนำใด ๆ เกี่ยวกับวิธีตรวจสอบว่าฉันไม่พลาดบางสิ่งหรือไม่ เกิดอะไรขึ้นถ้ามีงานรายสัปดาห์หรือรายเดือนบ้าง ฉันจะต้องไปทีละบรรทัดจนกว่าจะถึงต้นเดือนที่แล้วเพื่อดูว่าฉันมี cronjob ที่ทำงานน้อยกว่าปกติหรือไม่
Miguel Mesquita Alfaiate

ฉันคิดว่าคุณต้องไปทีละบรรทัดในช่วงหนึ่งเดือนที่ผ่านมา ขออภัย
Muhammed Sherief

ไม่จำเป็นต้องมี "ทีละบรรทัด" ใช้grepกับทั้ง-oหรือประปาเข้าsed/ awk/ cut/ ฯลฯ sort -uเพื่อดึงเพียงคำสั่งแล้วประปาเข้า
Patrick

3
คุณจะยังคงต้องไปทีละบรรทัดเพื่อทำงานตามตารางหากไม่ใช่แค่รายวันหรือรายสัปดาห์ สิ่งที่ต้องการawk '$5 ~ "^CROND" && $6 == "(username)" { print }' /var/log/cron | sort -t ' ' -k 8จะแสดงรายการสำหรับการusernameเรียงลำดับตามคำสั่งซึ่งจะทำให้ง่ายต่อการดูช่วงเวลาระหว่างพวกเขาเพื่อให้คุณสามารถสร้างตารางเวลาของพวกเขา
James Sneeringer

@ JamesSneeringer ที่เป็นเวทย์มนตร์แน่นอน! ยกนิ้วให้!
Miguel Mesquita Alfaiate

2

ฉันไม่แน่ใจมันเป็นไปได้ที่จะกู้คืนcrontabไฟล์โดยไม่มีการสำรองข้อมูล แต่ฉันค่อนข้างมั่นใจว่าคุณสามารถกู้คืนcrontabไฟล์ของคุณจากcronบันทึก เท่าที่ฉันจำได้รวดเร็วทุกคำสั่งจะปรากฏขึ้นพร้อมกับผู้ใช้


2

หากคุณจำสายเฉพาะคุณสามารถ grep อุปกรณ์ทั้งหมดเพื่อค้นหาข้อมูลของคุณกลับมาในสภาพที่ไม่มีข้อมูลอื่นเขียนทับ สิ่งนี้ใช้ได้กับทุกไฟล์

grep -a -B100 -A100 "command/you remember" /dev/sda1 > /tmp/cron.ressurected

ปรับ -B (efore) และ -A (fter) ตามขนาดไฟล์ของคุณ แต่ 100 บรรทัดรอบ ๆ ควรเพียงพอสำหรับไฟล์ cron จำเป็นต้องใช้พารามิเตอร์ -a เพื่อบังคับให้ grep พิจารณาอุปกรณ์ของคุณเป็นข้อความ

จากนั้นคุณจะต้องทำความสะอาดระเบียบไบนารีก่อนและหลังข้อมูลของคุณในไฟล์ผลลัพธ์

และใช้เวลานานมาก โชคดี.

คุณสามารถอ้างถึงคำตอบนี้: ยกเลิกการลบ / กู้คืนไฟล์ที่ถูกลบ | Unix & Linux Stack Exchange

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.