ทั้งสองcron
และanacron
เป็น daemons ที่สามารถกำหนดเวลาการดำเนินการงานที่เกิดซ้ำตามเวลาที่กำหนดโดยผู้ใช้
ความแตกต่างที่สำคัญระหว่างcron
และanacron
คืออดีตถือว่าระบบทำงานอย่างต่อเนื่อง หากระบบของคุณปิดและคุณมีงานที่กำหนดไว้ในช่วงเวลานี้งานจะไม่ถูกดำเนินการ
ในอีกทางหนึ่งanacron
คือ 'สมัย' และถูกออกแบบมาสำหรับระบบที่ไม่ได้ทำงานตลอด 24 ชั่วโมงทุกวัน เพื่อให้anacron
ใช้งานได้ใช้ไฟล์ที่มีการประทับเวลาเพื่อค้นหาว่าเมื่อใดที่คำสั่งนั้นถูกดำเนินการครั้งล่าสุด นอกจากนี้ยังเก็บรักษาไฟล์/etc/anacrontab
เช่นเดียวกับที่cron
ทำ นอกจากนี้cron.daily
ทำงาน anacron ทุกวัน ดังนั้นanacron
สามารถทำงานได้วันละครั้ง แต่cron
สามารถทำงานได้บ่อยเท่าทุกนาที
จากman anacrontab
:
เมื่อดำเนินการ Anacron จะอ่านรายการงานจากไฟล์กำหนดค่าปกติ / etc / anacrontab (ดูที่ anacrontab (5)) ไฟล์นี้มีรายการงานที่ Anacron ควบคุม แต่ละรายการงานระบุช่วงเวลาเป็นวัน, ความล่าช้าเป็นนาที, ตัวระบุงานที่ไม่ซ้ำกัน, และคำสั่งเชลล์
สำหรับแต่ละงาน Anacron ตรวจสอบว่างานนี้ถูกดำเนินการใน n วันล่าสุดหรือไม่โดยที่ n คือระยะเวลาที่ระบุสำหรับงานนั้น ถ้าไม่ใช่ Anacron จะรันคำสั่งเชลล์ของงานหลังจากรอจำนวนนาทีที่ระบุไว้เป็นพารามิเตอร์การหน่วงเวลา
หลังจากที่คำสั่งออกแล้ว Anacron จะบันทึกวันที่ในไฟล์ประทับเวลาพิเศษสำหรับงานนั้นเพื่อให้สามารถทราบได้ว่าเมื่อใดที่จะเรียกใช้งานอีกครั้ง ใช้เฉพาะวันที่สำหรับการคำนวณเวลา ไม่ได้ใช้ชั่วโมง
ซึ่งหมายความว่าหากมีการจัดตารางงานให้เรียกใช้ทุกวันและปิดคอมพิวเตอร์ในช่วงเวลานั้นเมื่อมีการเรียกใช้ anacron จะเห็นว่างานนั้นถูกเรียกใช้มานานกว่า 24 ชั่วโมงแล้วและดำเนินงานอย่างถูกต้อง
ตัวอย่างเช่นหากคุณระบุสิ่งต่อไปนี้ใน/etc/anacrontab
:
7 15 test.daily /bin/sh /home/username/script.sh
และในวันที่script.sh
งานควรจะถูกดำเนินการหากระบบไม่ทำงานanacron
จะดำเนินการscript.sh
15 นาทีหลังจากระบบกลับมาทำงาน
อ้างอิงน้อย: