ปิดใช้งานตัวเลือกการลบของ crontab ใน CLI


13

ฉันจะปิดการใช้งานคำสั่งเฉพาะได้crontab -rอย่างไร?

มันเกิดขึ้นกับฉันสองครั้งแล้วที่ฉันตั้งใจเรียกใช้เพราะEกุญแจของฉันอยู่ติดกับRกุญแจ พิมพ์ผิดเล็กน้อยนั้นเพียงพอแล้ว crontab ของคุณก็หายไป


2
อย่าลืมทำสำเนาสำรองของไฟล์สำคัญ!
wjandrea

แน่นอนว่าฉันมี @daily zip -r /home/./scripts/cronjobs-all.zip / var / spool / cron / crontabs
66638

ระบบควบคุมการแก้ไขซอร์สโค้ดอย่าง Mercurial หรือ Git จะเป็นระบบจัดการไฟล์สคริปต์และป้องกันการเปลี่ยนแปลงหรือลบโดยไม่ตั้งใจ คุณไม่จำเป็นต้องมีที่เก็บระยะไกลสำหรับทั้งสองอย่าง :-)
David Foerster

คำตอบ:


16

ใช้ wrapper รอบcrontabคำสั่งตัวอย่างเช่นฟังก์ชันนี้จะทำ:

crontab () { [[ $@ =~ -[iel]*r ]] && echo '"r" not allowed' || command crontab "$@" ;}

ฟังก์ชันนี้ตรวจสอบว่า-rมีอยู่ในอาร์กิวเมนต์ของcrontab; ถ้าเป็นเช่นนั้นให้ออกจากข้อความ"r" not allowedหรือดำเนินการตามคำสั่ง

ใส่ไว้ในของคุณ~/.bashrcเพื่อรับโหลดเมื่อเริ่มต้นbashเซสชันแบบโต้ตอบทั้งหมด


27

ฉันขอแนะนำให้คุณรวม

alias crontab="crontab -i"

ใน~/.bashrcไฟล์ของคุณ(เริ่มเชลล์ใหม่ก่อนทดสอบ!)

ซึ่งหมายความว่าทุกครั้งที่คุณเรียกใช้ crontab คุณจะต้องเลือกตัวเลือก "-i" เสมอ หากคุณให้crontab -rคำสั่งในตอนนี้คำสั่งจะถูกประมวลผลที่crontab -irพร้อมต์ก่อนที่จะลบไฟล์ crontab:

nick@serv2:~$ crontab -r
crontab: really delete nick's crontab? (y/n) n
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.