DriteStudioDRITESTUDIODRITESTUDIO
HomeArticlesAbout UsContact
Home
VPSHigh-performance virtual servers with full root access
VPS ForexUltra-low latency VPS optimized for Forex & automated trading
Web HostingManaged hosting with Plesk and free SSL
Game Server HostingSupports 20+ games worldwide. Rent a VPS and tell us which game you want to run.
Dedicated ServersEnterprise hardware with IPMI access
ColocationSecure data center space for your servers
SecurityWAF, DDoS Protection & 24/7 SOC Monitoring
Web DevelopmentCustom website design & development with modern frameworks
SEO ServiceBoost rankings with articles, backlinks & technical SEO
StatusCheck system uptime and service availability
ArticlesAbout UsContact
0%
CronJob คืออะไร? วิธีตั้งเวลาสั่งงานอัตโนมัติบน Linux แบบมือโปร
Back to articles

CronJob คืออะไร? วิธีตั้งเวลาสั่งงานอัตโนมัติบน Linux แบบมือโปร

เรียนรู้ CronJob คืออะไร พร้อม crontab syntax ตัวอย่างการใช้งานจริง เปรียบเทียบกับ systemd timers และเคล็ดลับตั้งเวลาสั่งงานอัตโนมัติบน Linux อย่างมืออาชีพ

Linux-August 11, 2023-Updated: April 17, 2026

CronJob คืออะไร? ระบบตั้งเวลาสั่งงานอัตโนมัติบน Linux

CronJob คือระบบตั้งเวลาบน Linux ที่ช่วยให้ผู้ดูแลเซิร์ฟเวอร์สามารถกำหนดให้คำสั่งหรือสคริปต์ทำงานอัตโนมัติตามเวลาที่ตั้งไว้ ไม่ว่าจะเป็นการสำรองฐานข้อมูล ลบไฟล์ชั่วคราว หรือตรวจสอบสถานะระบบ CronJob จัดการได้ทั้งหมดโดยไม่ต้องนั่งพิมพ์คำสั่งเอง ถือเป็นเครื่องมือพื้นฐานที่ขาดไม่ได้สำหรับการดูแลเซิร์ฟเวอร์

Cron ทำงานอย่างไร

Cron เป็น daemon (โปรแกรมที่ทำงานอยู่เบื้องหลัง) บน Linux ที่คอยตรวจสอบตารางเวลาและรันคำสั่งตามที่ตั้งไว้ ส่วน crontab คือไฟล์ที่เก็บตารางเวลา ทุก user ในระบบสามารถมี crontab เป็นของตัวเองได้

ทำความเข้าใจ Crontab Syntax

หัวใจของ CronJob คือการเขียน crontab syntax ที่ถูกต้อง ประกอบด้วย 5 ส่วนตามด้วยคำสั่งที่ต้องการรัน

นาที ชั่วโมง วันของเดือน เดือน วันของสัปดาห์ คำสั่ง
(0-59) (0-23)   (1-31)      (1-12) (0-7)         command

เครื่องหมาย * หมายถึงทุกค่า เครื่องหมาย , ใช้ระบุหลายค่า และ / ใช้กำหนดช่วง

วิธีแก้ไข Crontab

crontab -e    # แก้ไข crontab ของ user ปัจจุบัน
crontab -l    # ดู crontab ที่ตั้งไว้
crontab -r    # ลบ crontab ทั้งหมด (ระวัง!)

ตัวอย่าง CronJob ที่ใช้บ่อย

สำรองฐานข้อมูลทุกคืน

0 3 * * * mysqldump -u root mydb > /backup/db_$(date +\%Y\%m\%d).sql

รันทุกวันตอนตี 3 สำรองฐานข้อมูลพร้อมใส่วันที่ในชื่อไฟล์

ลบ log เก่าทุกสัปดาห์

0 4 * * 0 find /var/log/myapp -name "*.log" -mtime +30 -delete

ทุกวันอาทิตย์ตอนตี 4 ลบ log ที่เก่ากว่า 30 วัน

ตรวจสอบ disk space ทุก 30 นาที

*/30 * * * * df -h | grep -E "9[0-9]%|100%" && echo "Disk almost full" | mail -s "Alert" [email protected]

Cron vs Systemd Timers

Linux รุ่นใหม่มีทางเลือกเพิ่มเติมคือ systemd timers ซึ่งให้ log ที่ละเอียดกว่า สามารถรันชดเชยได้ถ้าพลาดเวลา และจัดการ dependency ระหว่าง service ได้ดีกว่า แต่ตั้งค่ายุ่งยากกว่า cron

สำหรับงานส่วนใหญ่ cron ยังคงเป็นตัวเลือกที่ดีเพราะง่ายและตรงไปตรงมา

เคล็ดลับและข้อควรระวัง

ระบุ path เต็มเสมอ

Cron ไม่ได้โหลด environment เหมือนตอนล็อกอิน ควรระบุ path เต็มของคำสั่ง เช่น /usr/bin/python3 แทน python3

เก็บ output ไว้ตรวจสอบ

เพิ่ม redirect output เช่น >> /var/log/myjob.log 2>&1 ต่อท้ายคำสั่ง เพื่อตรวจสอบปัญหาได้ภายหลัง

ทดสอบคำสั่งก่อนใส่ crontab

รันคำสั่งด้วยมือก่อนเสมอเพื่อให้แน่ใจว่าทำงานถูกต้อง

ระวังเรื่อง timezone

Cron ใช้ timezone ของระบบ ถ้าเซิร์ฟเวอร์ตั้ง UTC แต่ต้องการรัน job ตามเวลาไทย ต้องคำนวณเวลาให้ถูก

คำถามที่พบบ่อย

CronJob รันแล้วไม่ทำงาน ต้องเช็คอะไร?

สาเหตุที่พบบ่อยคือ path ไม่ถูกต้อง สิทธิ์ของไฟล์ไม่เพียงพอ หรือ environment variable ไม่ถูกตั้งค่า ลองเพิ่ม redirect output เพื่อดู error log และตรวจสอบ /var/log/syslog หรือ /var/log/cron ด้วย

ตั้ง CronJob ให้รันทุกกี่วินาทีได้ไหม?

Cron รองรับความถี่ต่ำสุดที่ 1 นาที หากต้องการรันทุกกี่วินาที ต้องใช้วิธีอื่น เช่น เขียน script ที่วนลูปด้วย sleep หรือใช้ systemd timer ที่รองรับหน่วยวินาที

CronJob ทำงานซ้อนกันได้ไหม?

ได้ ถ้า job ก่อนหน้ายังไม่เสร็จแต่ถึงเวลารันใหม่ cron จะสร้าง process ใหม่ทับ หากต้องการป้องกัน ให้ใช้ flock หรือเขียน lock file เพื่อไม่ให้ job ซ้อนกัน

CronJob ของ root กับ user ปกติต่างกันอย่างไร?

CronJob ของ root มีสิทธิ์เข้าถึงทุกอย่างในระบบ ส่วน user ปกติจะมีสิทธิ์จำกัดตาม permission ของ user นั้น แนะนำให้ใช้ root cron เฉพาะงานที่จำเป็นจริง ๆ เท่านั้น

ตั้งงานอัตโนมัติบน VPS ของ DriteStudio

CronJob เป็นเครื่องมือที่ขาดไม่ได้สำหรับการจัดการเซิร์ฟเวอร์ หากคุณต้องการ VPS ที่มี root access เต็มรูปแบบ สามารถตั้ง CronJob ได้ตามใจโดยไม่มีข้อจำกัด DriteStudio เตรียมเซิร์ฟเวอร์บน hardware คุณภาพสูงให้ scheduled job ของคุณรันตรงเวลาทุกครั้ง หรือหากต้องการ Hosting ก็สามารถใช้ CronJob ได้เช่นกัน ติดต่อ DriteStudio วันนี้เพื่อเลือกแพลนที่เหมาะกับคุณ

Share article:
View more articles
D

DriteStudio | ไดรท์สตูดิโอ

Digital infrastructure provider for VPS, web hosting, and colocation in Thailand

Operated by Craft Intertech (Thailand) Co., Ltd.

© 2026 Craft Intertech (Thailand) Co., Ltd. All rights reserved.

Privacy PolicyTerms of ServiceSystem Status