Menu

Friday, January 17, 2020

[System] การตั้งค่า Crontab เพื่อรันภายใต้ผู้ใช้งานที่ระบุ
[System] How to Run Crontab with Specific User

ในบางครั้งเราต้องการรัน cron ภายใต้ผู้ใช้งานที่เราระบุ ยกตัวอย่าง เช่น การรัน schedule ของ Laravel การไม่ระบุผู้ใช้งาน อาจจะทำให้เกิดปัญหาขึ้นได้ (อ่านเพิ่มได้ที่ [Laravel - Scheduler] ระวัง!!! การไม่กำหนด username ใน Cron Entry สามารถทำให้เกิด "Permission Denied" ได้)

การระบุผู้ใช้งานที่รัน cron สามารถระบุได้ 2 แบบดังนี้
  1. การตั้งค่า cron ในไฟล์ /etc/crontab หรือไฟล์ใน /etc/cron.d/ สามารถเพิ่ม cron entry ที่มี username ได้เลย ดังนี้
  2. * * * * * username /path/to/your/script.sh
    
  3. การตั้งค่า cron ภายใต้ user ที่ต้องการ สามารถรันคำสั่งดังนี้ 
  4. sudo crontab -u username -e
    
    หลังจากนั้น เพิ่ม cron entry ดังนี้
    * * * * * /path/to/your/script.sh
    
หมายเหตุ ไม่สามารถใช้ crontab entry แบบที่ 1 เพิ่มลงในการตั้งค่า cron แบบที่ 2 เนื่องจาก /path/to/your/script.sh จะไม่ถูกรัน

No comments:

Post a Comment