วันศุกร์ที่ 13 สิงหาคม พ.ศ. 2553

ทำไมเขียน script ใน cron.daily แล้วไม่ทำงานนะ

หลายคนอาจจะเคยเขียน script ขึ้นมาแล้วต้องการให้ script นี้ execute ทุกวัน
บางคนอาจเข้าไปแก้ไข crontab โดยใช้ "crontab -e" แล้วสั่งให้ทำงานทุกวัน
แต่ถ้าใครใช้วิธีนำ script ที่เขียนไปไว้ใน /etc/cron.daily แล้วล่ะก็ อาจจะเจอปัญหา cron ไม่ทำงานเฉพาะ script ที่เราเอาไปวาง การแก้ปัญหาง่าย ๆ โดยทำตามขั้นตอนต่อไปนี้

1. นำ script ที่ต้องการรันไปวางไว้ที่ /etc/cron.daily|weekly|monthly
2. ตรวจสอบว่า script ที่เอาไปวางต้องสามารถ execute ได้ โดยใช้
chmod a+x /etc/cron.xxx/
3. ชื่อ script ห้ามมี .sh หรือ .xxx เด็ดขาด เป็นได้แค่ตัวอักษรตัวเล็ก ตัวใหญ่ ตัวเลข ขีดกลาง(-) ขีดเส้นใต้(_) เท่านั้น
4. ตรวจสอบว่า script เราเข้าไปอยู่ในการทำงานของ cron หรือยัง โดยใช้คำสั่ง
run-parts --test /etc/cron.xxx/

ถ้าทำตามนี้ script ที่เราต้องการก็จะทำงานตาม cron ที่ตั้งไว้แล้ว ^^
จบจ้า