cron job ใช้สั่งงานตามเวลาที่กำหนด

            cron job เอาไว้ใช้สั่งรันคำสั่ง หรือสคริปตามเลขเวลานะครับ แต่ถ้ามีสิ่งที่ต้องรันเยอะๆ ก็ไม่แนะนำนะครับ เพราะว่ามันไม่ทราบว่าสิ่งที่รันไปก่อนหน้าจะทำงานเสร็จแล้วรึยัง มันจะทำหน้าที่แค่รันอย่างเดียว อาจจะต้องไปใช้พวกโปแกรมที่ทำหน้าที่ด้านนี้โดยตรงเช่น air flow

  1.  crontab -e เข้าไปที่ไฟล์ cron job กด 1 เพื่อใช้ nano แล้วกด ctrl + / + v เพื่อไปล่างสุดนะครับ
  2. ภายในไฟล์จะมีโครงสร้างคำสั่งในรูปแบบ m h dom mon dow command โดย m(min)=0-59 นาที, h(hour)=0-23 ชม., dom(day of month)=1-31 วัน, mon(month)=1-12 เดือน, dow(day of week)=0-6 วันในสัปดาห์ (น่าจะเริ่ม 0 ที่วันเสาร์) เช่น 0 1 * * 1-5  /home/NameUser/ScriptName.sh ซึ่งจะหมายถึงรันไฟล์ ScriptName.sh ทุกๆ ตีหนึ่ง วันจันทร์ ถึงศุกร์ นะครับ (ถือว่านาทีที่ 60 ใช้เลข 0)
  3. Ctrl+s --> Ctrl+x เพื่อเซฟ
  4. sudo systemctl restart cron สั่งให้ระบบโหลดคำสั่งใน cron job ใหม่อีกครั้ง กรณีที่ไม่ได้รีสตาร์ทเครื่อง
  5. กรณีที่ต้องการทำให้บางโปรแกรมเริ่มทำงานตอน startup นะครับ ก่อนอื่นต้องหาตัวรันโปรแกรมก่อนด้วยคำสั่ง locate -b AppName | grep -w bin (ถ้าทำบน server) หรือคลิ๊กขวาที่ไอคอนโปรแกรมแล้วเลือก Edit Application ดูที่ Command จะมีคำสั่งที่ใช้รัน app อยู่นะครับ
  6. ไปที่ crontab -e แล้วใส่ @reboot Command หรือกรณีใช้แบบ GUI ไปที่ Menu > Setting > Session and Startup > Application Autostart > เลือกคลิ๊ก + ด้านล่างซ้าย > ใส่ชื่อ และเอา Command มาใส่แล้วกด OK นะครับ
  7. กรณีที่ไม่มั่นใจว่า cron job ทำงานอยู่ไหมให้ใช่คำสั่ง sudo systemctl status cron ถ้าไม่เปิดให้ใช้คำสั่ง sudo systemctl enable cron นะครับ
  8. อันนี้ไว้ดูการทำงานของ cron นะครับ grep CRON /var/log/syslog ถ้าพบความผิดพลาดอะไรมันจะแจ้งไว้ที่นี่
  9. อย่างของผมเจอ error ประมาณนี้ (CRON) info (No MTA installed, discarding output)
    ซึ่งต้องติดตั้งตัวนี้เพิ่มก่อนนะครับ sudo apt-get install postfix ถึงจะใช้งานได้ตามปกติ

             ปล. มีเว็บที่จะช่วยให้เราทดลองการตั้งค่าได้ง่ายๆ ไปที่นี้ครับ ส่วนอันนี้ของคนไทยอีกอันที่อธิบายได้ละเอียดดีครับ

 

 

 

 

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

โปรโมชั่นเน็ต TOT

โน๊ตบุ๊ค acer switch sa5-271 แบตบวม T^T

Blog นี้สร้างเพื่อ?