grep | crontab
วิ่งเพื่อนร่วมงานของฉัน หลังจากนั้นงานทั้งหมดก็หายไป crontab -l
ดูเหมือนว่าเขากำลังพยายามที่จะเรียกใช้
แล้วเกิดอะไรขึ้นหลังจากรันคำสั่งgrep | crontab
? มีใครอธิบายได้บ้าง
grep | crontab
วิ่งเพื่อนร่วมงานของฉัน หลังจากนั้นงานทั้งหมดก็หายไป crontab -l
ดูเหมือนว่าเขากำลังพยายามที่จะเรียกใช้
แล้วเกิดอะไรขึ้นหลังจากรันคำสั่งgrep | crontab
? มีใครอธิบายได้บ้าง
คำตอบ:
crontab
สามารถติดตั้งใหม่crontab
สำหรับผู้ใช้ที่เรียกใช้ (หรือผู้ใช้ที่กล่าวถึงroot
) อ่านจาก STDIN นี่คือสิ่งที่เกิดขึ้นในกรณีของคุณ
grep
ไม่มีตัวเลือกใด ๆ ที่จะสร้างข้อความแสดงข้อผิดพลาดบน STDERR ตามปกติและคุณกำลังวางท่อ STDOUT ของgrep
ไปยัง STDIN crontab
ซึ่งว่างเปล่าดังนั้นคุณcrontab
จะหายไป
เขาเลิกงานได้อย่างไร เขาพิมพ์ Cc หรือ Cd หรือไม่? หากเขาพิมพ์ Cd มันก็เทียบเท่ากับการทำงานcrontab < /dev/null
และคุณได้แทนที่ไฟล์ crontab ของผู้ใช้ด้วยไฟล์เปล่า ในทางตรงกันข้ามถ้าคุณฆ่าcrontab
กับสำเนาแล้ว crontab อาจได้รับการรักษา crontab -l
แต่คุณสามารถตรวจสอบว่าด้วยการวิ่ง
โปรแกรมทั้งหมดนี้แก้ไขไฟล์ crontab ใน/var/spool/cron/
ดังนั้นหากคุณมีข้อมูลสำรองของระบบไฟล์คุณสามารถกู้คืนไฟล์ crontab ของผู้ใช้ได้จากที่นั่น
ฉันไม่เห็นว่าไม่มีการโต้แย้งกับ grep ดังนั้น grep จึงผิดพลาดและแน่นอนไฟล์ crontab จะถูกพัดหายไปเสมอ
crontab
คุณต้องใช้บางเวอร์ชัน-
เป็นชื่อไฟล์เพื่ออ่านจากอินพุตมาตรฐาน ฉันคิดว่านี่เป็นเพราะคนจำนวนมากเกินไปเป่า crontabs ของพวกเขาด้วยความผิดพลาดเช่นนี้