Wednesday, March 8, 2023

Crontab Linux not running at specific time

ประเด็นมีอยู่ว่า

  • กำหนดค่าใน crontab ให้รัน file.sh เมื่อเวลา 1.30 น. แตทำไมมันไปทำงานตอน 8.30 น. ซะงั้น
  • เช็ค time zone ของระบบด้วยคำสั่งด้านล่าง ก็ได้เป็น Asia/Bangkok +07 แล้วนะ

$ cat /etc/timezone 

  • หรือ select now() ใน mysql ของระบบก็แสดงเวลาที่ถูกต้อง ตามเวลาประเทศไทยเรานะ
  • ลองเพิ่มงานใน crontab ให้ทำงาน 10.30 น. แต่มันก็ไม่ทำงานในเวลานี้เหมือนเดิม

Solved

  • รีสตาร์ท service cron ลองดู

$ sudo service cron restart

  • ลองสร้าง job ใน crontab เป็นเวลา 10.40 ที่นี้แหละ มันก็ทำงานตรงเวลาแล้วคับ
  • สรุป รีสตาร์ท service เค้า ก็ใช้งานได้แล้ว

เพิ่มเติม

  • เปิดเก็บ log crontab โดยแก้ไขไฟล์ /etc/rsyslog.conf

$ sudo vi /etc/rsyslog.d/50-default.conf

  • เปิด comment -> cron.* /var/log/cron.log

  • restart rsyslog ด้วยคำสั่ง
$ sudo service rsyslog restart

Ref

  • https://stackoverflow.com/questions/34626135/crontab-linux-not-running-at-specific-time
  • https://www.serverlab.ca/tutorials/linux/administration-linux/how-to-check-and-set-timezone-in-ubuntu-20-04/

Popular Posts