สาเหตุที่พบบ่อยที่สุดที่ฉันเห็น cron ล้มเหลวในตารางที่ระบุไว้ไม่ถูกต้อง มันต้องใช้เวลาการปฏิบัติเพื่อระบุงานที่กำหนดไว้สำหรับ 23:15 เป็น15 23 * * *
แทน หรือ* * 11 15 *
11 15 * * *
วันของสัปดาห์สำหรับงานหลังเที่ยงคืนยังได้รับสับสน MF คือหลังเที่ยงคืนไม่ได้2-6
1-5
วันที่ที่ระบุมักเป็นปัญหาเนื่องจากเราไม่ค่อยใช้พวกเขา* * 3 1 *
ไม่ใช่วันที่ 3 มีนาคม หากคุณไม่แน่ใจว่าตรวจสอบตาราง cron ออนไลน์ของคุณที่https://crontab.guru/
หากการทำงานของคุณกับแพลตฟอร์มที่แตกต่างกันโดยใช้ตัวเลือกที่ไม่ได้รับการสนับสนุนเช่น2/3
ข้อกำหนดเวลาอาจทำให้เกิดความล้มเหลวได้ นี่เป็นตัวเลือกที่มีประโยชน์มาก แต่ไม่สามารถใช้ได้ในระดับสากล ฉันได้ทำงานยังข้ามปัญหาเกี่ยวกับรายชื่อเหมือนหรือ1-5
1,3,5
การใช้พา ธ ที่ไม่มีเงื่อนไขทำให้เกิดปัญหาเช่นกัน เส้นทางเริ่มต้นมักจะเป็น/bin:/usr/bin
คำสั่งมาตรฐานเท่านั้นที่จะทำงาน ไดเรกทอรีเหล่านี้มักจะไม่มีคำสั่งที่ต้องการ สิ่งนี้มีผลกับสคริปต์โดยใช้คำสั่งที่ไม่ได้มาตรฐาน ตัวแปรสภาพแวดล้อมอื่นอาจหายไปเช่นกัน
การใช้ crontab ที่มีอยู่เดิมทำให้ฉันมีปัญหา ตอนนี้ฉันโหลดจากการคัดลอกไฟล์ สิ่งนี้สามารถกู้คืนได้จาก crontab ที่มีอยู่โดยใช้crontab -l
ถ้ามันถูกอุดตัน ฉันเก็บสำเนา crontab ไว้ใน ~ / bin # EOF
มันเป็นความเห็นตลอดและจบลงด้วยเส้น นี่คือโหลดใหม่ทุกวันจากรายการ crontab เช่น:
#! / usr / bin / crontab
# โหลด crontab นี้ใหม่
#
54 12 * * * $ {HOME} / bin / crontab
คำสั่งโหลดข้างต้นขึ้นอยู่กับ crontab ที่สามารถเรียกใช้งานได้พร้อมกับเส้นทางที่ทำงานด้วย crontab บางระบบต้องการ crontab ที่กำลังรันอยู่ในคำสั่งและระบุไฟล์ หากไดเรกทอรีแชร์ผ่านเครือข่ายฉันมักจะใช้crontab.$(hostname)
เป็นชื่อไฟล์ ในที่สุดกรณีนี้จะแก้ไขกรณีที่โหลด crontab ผิดบนเซิร์ฟเวอร์ผิด
การใช้ไฟล์จัดทำข้อมูลสำรองของสิ่งที่ crontab ควรเป็นและอนุญาตให้ทำการแก้ไขชั่วคราว (เฉพาะครั้งเดียวที่ฉันใช้crontab -e
) ที่จะสำรองข้อมูลโดยอัตโนมัติ มีส่วนหัวที่พร้อมใช้งานซึ่งช่วยให้การตั้งค่าพารามิเตอร์ถูกต้อง ฉันได้เพิ่มพวกเขาเมื่อผู้ใช้ที่ไม่มีประสบการณ์จะแก้ไข crontab
ไม่ค่อยฉันมีคำสั่งที่ต้องป้อนข้อมูลผู้ใช้ สิ่งเหล่านี้ล้มเหลวภายใต้ crontab แม้ว่าบางอย่างจะทำงานกับการเปลี่ยนเส้นทางอินพุต
crontab -e
cron เพื่อรับผลกระทบ เช่นการใช้ vim ฉันแก้ไขไฟล์และใช้:w
เพื่อเขียน แต่งานจะไม่ถูกเพิ่มใน cron จนกว่าฉันจะออกจาก ดังนั้นฉันจะไม่เห็นงานจนกระทั่งหลังจากฉัน:q
ด้วย