กลับไปหน้าบล็อก
พฤษภาคม 23, 2026คู่มือ

วิธีตั้งค่า Cron Jobs บน Linux Server

เรียนรู้ syntax ของ cron การแก้ไข crontab ตัวอย่างการกำหนดเวลาที่พบบ่อย และ logging สำหรับงานอัตโนมัติบน VPS

วิธีตั้งค่า Cron Jobs บน Linux Server

Cron เป็น scheduler มาตรฐานของ Linux สำหรับรันสคริปต์และคำสั่งในเวลาที่กำหนด — backup ล้าง cache ตรวจสอบ certificate และอื่นๆ คู่มือนี้แสดงวิธีใช้ cron บนเซิร์ฟเวอร์ Hiddence ของคุณ

Cron syntax

แต่ละบรรทัดมีห้าฟิลด์เวลาตามด้วยคำสั่ง:

bash
# ┌──────── minute (0-59)
# │ ┌────── hour (0-23)
# │ │ ┌──── day of month (1-31)
# │ │ │ ┌── month (1-12)
# │ │ │ │ ┌─ day of week (0-7, 0 and 7 = Sunday)
# │ │ │ │ │
# * * * * * command

# Every day at 3:00 AM:
0 3 * * * /usr/local/bin/backup.sh

# Every 15 minutes:
*/15 * * * * /usr/local/bin/check.sh

แก้ไข crontab

ใช้ crontab -e สำหรับ user ปัจจุบัน สำหรับงาน root (งานระบบส่วนใหญ่) ใช้ sudo:

bash
# Edit your user crontab
crontab -e

# Edit root crontab
sudo crontab -e

# List current jobs
crontab -l
sudo crontab -l

ตัวอย่างที่พบบ่อย

  • 0 2 * * * — backup รายวันเวลา 2:00 น.
  • 0 */6 * * * — ทุก 6 ชั่วโมง
  • 0 0 * * 0 — ทุกวันอาทิตย์เที่ยงคืน
  • */5 * * * * — ทุก 5 นาที (ใช้อย่างระมัดระวัง)
  • @reboot /path/script.sh — รันครั้งเดียวหลัง reboot
  • @daily /usr/bin/certbot renew --quiet — ตรวจสอบ Certbot รายวัน

Logging และ debugging

เปลี่ยนเส้นทาง output ไปยังไฟล์ log เพื่อทราบว่า job ล้มเหลวหรือไม่:

bash
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup-cron.log 2>&1

# View cron execution in system log:
grep CRON /var/log/syslog   # Ubuntu
grep CRON /var/log/cron      # CentOS

เคล็ดลับ

  • ใช้ absolute path ในคำสั่ง cron
  • ทดสอบสคริปต์ด้วยตนเองก่อนเพิ่มใน crontab
  • ตั้ง MAILTO=your@email.com ใน crontab สำหรับอีเมล error (หาก mail ตั้งค่าแล้ว)
  • ใช้ systemd timers สำหรับ dependencies ที่ซับซ้อนบนระบบสมัยใหม่
  • อย่ารันงานหนักทุกนาที — อาจทำให้ VPS โอverload