สามารถ grep | crontab ทำลายงานทั้งหมดหรือไม่


21

grep | crontabวิ่งเพื่อนร่วมงานของฉัน หลังจากนั้นงานทั้งหมดก็หายไป crontab -lดูเหมือนว่าเขากำลังพยายามที่จะเรียกใช้

แล้วเกิดอะไรขึ้นหลังจากรันคำสั่งgrep | crontab? มีใครอธิบายได้บ้าง

คำตอบ:


33

crontabสามารถติดตั้งใหม่crontabสำหรับผู้ใช้ที่เรียกใช้ (หรือผู้ใช้ที่กล่าวถึงroot) อ่านจาก STDIN นี่คือสิ่งที่เกิดขึ้นในกรณีของคุณ

grepไม่มีตัวเลือกใด ๆ ที่จะสร้างข้อความแสดงข้อผิดพลาดบน STDERR ตามปกติและคุณกำลังวางท่อ STDOUT ของgrepไปยัง STDIN crontabซึ่งว่างเปล่าดังนั้นคุณcrontabจะหายไป


4
crontabคุณต้องใช้บางเวอร์ชัน-เป็นชื่อไฟล์เพื่ออ่านจากอินพุตมาตรฐาน ฉันคิดว่านี่เป็นเพราะคนจำนวนมากเกินไปเป่า crontabs ของพวกเขาด้วยความผิดพลาดเช่นนี้
Barmar

4

เขาเลิกงานได้อย่างไร เขาพิมพ์ Cc หรือ Cd หรือไม่? หากเขาพิมพ์ Cd มันก็เทียบเท่ากับการทำงานcrontab < /dev/nullและคุณได้แทนที่ไฟล์ crontab ของผู้ใช้ด้วยไฟล์เปล่า ในทางตรงกันข้ามถ้าคุณฆ่าcrontabกับสำเนาแล้ว crontab อาจได้รับการรักษา crontab -lแต่คุณสามารถตรวจสอบว่าด้วยการวิ่ง

โปรแกรมทั้งหมดนี้แก้ไขไฟล์ crontab ใน/var/spool/cron/ดังนั้นหากคุณมีข้อมูลสำรองของระบบไฟล์คุณสามารถกู้คืนไฟล์ crontab ของผู้ใช้ได้จากที่นั่น

ปรับปรุง

ฉันไม่เห็นว่าไม่มีการโต้แย้งกับ grep ดังนั้น grep จึงผิดพลาดและแน่นอนไฟล์ crontab จะถูกพัดหายไปเสมอ


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