ประเด็นมีอยู่ว่า
- กำหนดค่าใน 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/