พิเศษ! เพียงใช้โค้ด freehosting1y รับฟรีโฮสติ้ง 1 ปี เฉพาะออเดอร์ที่มียอดซื้อตั้งแต่ 25,000 บาทขึ้นไปที่มีโฮสติ้ง

anacron เริ่มทำงานวันไหน ถ้าไฟล์ weekly เพิ่มในโฟลเดอร์ cron

  • 0:25 min

  • 0 comments

หากคุณเพิ่มไฟล์สคริปต์เข้าไปใน /etc/cron.weekly/ วันนี้ การทำงานของมันจะขึ้นอยู่กับ “ประวัติการรัน” ของระบบครับ โดยมีรายละเอียดดังนี้:

1. มันจะทำงานเมื่อไหร่?

anacron จะตรวจสอบไฟล์ใน /var/spool/anacron/ เพื่อดูว่าสคริปต์นั้นๆ ถูกรันครั้งล่าสุดเมื่อไหร่:
* ถ้ายังไม่เคยรันเลย: anacron มักจะมองว่ามัน “ถึงเวลาที่ต้องรันแล้ว” และจะรันสคริปต์นั้น ภายในเวลาไม่นานหลังจากที่คุณเพิ่มไฟล์เข้าไป (โดยปกติจะรอประมาณ 5-10 นาทีตามค่า START_HOURS_RANGE ในไฟล์กำหนดค่า เพื่อไม่ให้รบกวนการทำงานช่วงบูตเครื่อง)
* ถ้าเคยรันมาแล้ว: มันจะนับถอยหลังไปอีก 7 วันนับจากครั้งล่าสุดครับ

2. กลไกการทำงานเบื้องหลัง

ระบบ Linux ของคุณจะมีไฟล์ที่ชื่อว่า /etc/crontab ซึ่งมักจะมีบรรทัดนี้อยู่:
bash
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

* หมายความว่า ระบบจะพยายามรัน anacron ทุกวันเวลา 06:25 (หรือ 06:47 ในวันอาทิตย์)
* แต่ถ้าเครื่องของคุณปิดอยู่ตอน 6 โมงเช้า anacron จะทำงานทันทีที่เครื่องเปิด โดยจะตรวจสอบว่าไฟล์ใน cron.weekly ถูกรันไปหรือยังในรอบ 7 วันที่ผ่านมา

3. วิธีตรวจสอบว่ามันจะรันเมื่อไหร่ (หรือรันไปหรือยัง)

คุณสามารถเช็คไฟล์ Timestamp ได้ว่าระบบบันทึกไว้ว่ารันครั้งล่าสุดเมื่อไหร่ โดยใช้คำสั่ง:
bash
ls -l /var/spool/anacron/

คุณจะเห็นไฟล์ชื่อ cron.weekly อยู่ข้างใน ถ้าคุณลอง cat ดูไฟล์นั้น:
bash
cat /var/spool/anacron/cron.weekly

คุณจะเห็น วันที่ล่าสุดที่มันรันไป ถ้าวันที่นั้นผ่านไปไม่ถึง 7 วัน มันจะไม่รันใหม่จนกว่าจะครบกำหนดครับ

สรุปคำแนะนำ:

  • ถ้าคุณเพิ่งเพิ่มไฟล์วันนี้: ระบบจะมองว่านี่คือการรันครั้งแรก (หรือรันครั้งถัดไปที่ยังไม่เกิดขึ้น) มันจะรันให้คุณในวันนี้หรือเช้าวันพรุ่งนี้ (ขึ้นอยู่กับจังหวะที่ตัวจัดการ Cron ของระบบเรียกใช้ anacron)
  • ถ้าคุณใจร้อน: อยากเทสต์ว่าสคริปต์ทำงานถูกต้องไหม ให้รันผ่าน Terminal ตรงๆ ได้เลยครับ:

    bash

    sudo run-parts --test /etc/cron.weekly


    (คำสั่งนี้จะแสดงรายชื่อไฟล์ที่จะถูกรันออกมาให้เห็นโดยที่ยังไม่รันจริง เพื่อเช็คว่าชื่อไฟล์ถูกต้องและระบบมองเห็นไฟล์นั้นหรือไม่)

ข้อควรระวังสำคัญ: อย่าลืม chmod +x /etc/cron.weekly/ชื่อไฟล์ของคุณ เสมอ เพราะถ้าไม่มี Permission นี้ anacron จะข้ามไฟล์นั้นไปอย่างเงียบๆ ครับ!

Outsource.Men รับพัฒนาเว็บไซต์ Shopify, Wordpress, Wix, ดูแลระบบ ERP, SaaS, Cloud, เขียนโปรแกรม Tradingview, Liquid, Google และดูแลระบบธุรกิจออนไลน์ โดยทีมผู้เชี่ยวชาญอิสระ

รับคำปรึกษาฟรี >>คลิกที่นี่<<

แชร์โพสต์นี้:

19

Jul

เตรียมตัวให้พร้อม! Google อัปเดตเงื่อนไขใหม่ Android Backup เริ่มนับรวมพื้นที่เก็บข้อมูลแล้ว

Google ประกาศเปลี่ยนนโยบาย Android Backup ใหม่! ข้อมูลเครื่องเริ่มนับรวมในพื้นที่ Google Account แล้ว เช็กผลกระทบและวิธีตั้งค่าปิด-เปิดสำรองข้อมูลแอปที่นี่ก่อนเริ่มจริงใน 45 วัน

15

Jul

anacron เริ่มทำงานวันไหน ถ้าไฟล์ weekly เพิ่มในโฟลเดอร์ cron

หากคุณเพิ่มไฟล์สคริปต์เข้าไปใน /etc/cron.weekly/ วันนี้ การทำงานของมันจะขึ้นอยู่กับ "ประวัติการรัน" ของระบบครับ โดยมีรายละเอียดดังนี้: 1. มันจะทำงานเมื่อไหร่? anacron จะตรวจสอบไฟล์ใน /var/spool/anacron/ เพื่อดูว่าสคริปต์นั้นๆ ถูกรันครั้งล่าสุดเมื่อไหร่: * ถ้ายังไม่เคยรันเลย: anacron มักจะมองว่ามัน "ถึงเวลาที่ต้องรันแล้ว" และจะรันสคริปต์นั้น ภายในเวลาไม่นานหลังจากที่คุณเพิ่มไฟล์เข้าไป (โดยปกติจะรอประมาณ 5-10 นาทีตามค่า START_HOURS_RANGE…

10

Jul

วิธีใช้ cron/anacron ทำงานรายวัน รายสัปดาห์ รายเดือน อัตโนมัติ

แม้ว่า systemd timers จะมีความทันสมัย แต่ cron และ anacron ยังคงเป็นมาตรฐานที่ติดตั้งมาพร้อมกับ Linux ทุกเครื่อง และมีความเรียบง่ายในการใช้งานสูงมาก บทความนี้จะเจาะลึกวิธีตั้งค่าให้งานทำงานอัตโนมัติด้วยเครื่องมือดั้งเดิมเหล่านี้ครับ 1. ปัญหาของ Cron แบบมาตรฐาน cron ถูกออกแบบมาให้รันงานตามเวลาที่กำหนดเป๊ะๆ (Time-based job scheduler) แต่มีจุดอ่อนสำคัญคือ: * ถ้าเครื่องปิด…