1. Cron คืออะไร?
Cron เป็นตัวจัดตารางงานตามเวลา ที่ใช้ในระบบปฏิบัติการ Linux และระบบที่คล้าย Unix มันถูกใช้โดยผู้ดูแลระบบและนักพัฒนาเพื่อทำงานอัตโนมัติที่ต้องทำเป็นประจำ บน Ubuntu Cron จะถูกติดตั้งโดยค่าเริ่มต้นและถูกใช้กันอย่างกว้างขวางสำหรับการจัดการเซิร์ฟเวอร์, การสำรองข้อมูล, สคริปต์ที่กำหนดเวลา, และอื่น ๆ
วิธีการทำงานของ Cron
Cron ทำงานโดยกำหนดคำสั่งในไฟล์กำหนดค่าเรียกว่า “crontab” crontab มีห้าฟิลด์ที่ระบุว่าเมื่อใดงานควรจะทำการดำเนินการ ทำให้ผู้ใช้สามารถกำหนดเวลางานได้อย่างแม่นยำ
- นาที (0–59)
- ชั่วโมง (0–23)
- วันที่ของเดือน (1–31)
- เดือน (1–12)
- วันของสัปดาห์ (0–7, โดยที่ 0 และ 7 แทนวันอาทิตย์)
ตัวอย่างเช่น งาน cron ที่ทำการสำรองข้อมูลทุกวันเวลา 5 นาฬิกาตอนเช้า จะมีลักษณะดังนี้:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
นี่แสดงให้เห็นว่า Cron ช่วยให้การทำงานอัตโนมัติของงานที่ทำซ้ำได้อย่างมีประสิทธิภาพ
ใครควรใช้ Cron?
Cron มีความสำคัญไม่เพียงแต่สำหรับผู้ดูแลระบบเท่านั้น แต่ยังสำหรับนักพัฒนาและผู้ที่ต้องการทำงานประจำวันอัตโนมัติหรือเรียกใช้สคริปต์บนเซิร์ฟเวอร์เป็นประจำ

2. การตั้งค่างาน Cron
การแก้ไข Crontab
เพื่อกำหนดค่างาน Cron คุณต้องแก้ไขไฟล์ crontab ของผู้ใช้ของคุณบน Ubuntu คุณสามารถเปิดไฟล์นี้โดยใช้คำสั่ง crontab -e :
crontab -e
ไวยากรณ์พื้นฐานของงาน Cron
งาน Cron ประกอบด้วยฟิลด์เวลาตามด้วยคำสั่งที่ต้องการดำเนินการ ไวยากรณ์ทั่วไปคือ:
Minute Hour Day Month DayOfWeek Command
งาน Cron ต่อไปนี้จะสร้างการสำรองข้อมูลของไดเรกทอรี /home/ ทุกวันเวลา 5 นาฬิกาตอนเช้า:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
การบันทึกและตรวจสอบรายการ Crontab
หลังจากเพิ่มงาน Cron แล้ว ให้บันทึกและปิดโปรแกรมแก้ไขเพื่อใช้การเปลี่ยนแปลง เพื่อยืนยันว่างาน Cron ของคุณได้ลงทะเบียนอย่างถูกต้องหรือไม่ ให้ใช้คำสั่งต่อไปนี้:
crontab -l
3. การกำหนดเวลางาน Cron ขั้นสูง
การรันงานในช่วงเวลาที่กำหนดเอง
หากคุณต้องการรันคำสั่งทุกนาทีหรือทุกห้านาที คุณสามารถกำหนดเวลาได้ดังนี้:
- รันทุกนาที:
* * * * * /path/to/script.sh
- รันทุก 5 นาที:
*/5 * * * * /path/to/script.sh
การรันงานในวันหรือช่วงเวลาที่กำหนด
เพื่อรันสคริปต์เฉพาะในวันใดวันหนึ่ง ให้ระบุฟิลด์วันของสัปดาห์ ตัวอย่างเช่น รันสคริปต์ทุกวันจันทร์เวลา 2:15 นาฬิกาตอนเช้า:
15 2 * * 1 /path/to/script.sh
4. การจัดการข้อผิดพลาดและการแก้ไขปัญหา
ปัญหางาน Cron ที่พบบ่อยและวิธีแก้
งาน Cron ไม่ทำงาน
หากงาน Cron ไม่ทำงาน ให้ตรวจสอบสิ่งต่อไปนี้:
- สิทธิ์การเข้าถึง: ตรวจสอบให้แน่ใจว่าสคริปต์หรือคำสั่งมีสิทธิ์การทำงาน.
- ใช้เส้นทางเต็ม: Cron ใช้
$PATHที่จำกัด ดังนั้นคำสั่งต้องระบุเส้นทางเต็ม./usr/bin/python3 /path/to/script.py
การตรวจสอบบันทึก
บันทึกของ Cron จะถูกเก็บไว้ใน /var/log/syslog การตรวจสอบไฟล์นี้จะแสดงเหตุผลที่งานล้มเหลวหรือว่ามันทำงานสำเร็จหรือไม่:
grep CRON /var/log/syslog
5. ข้อควรระวังด้านความปลอดภัย
การควบคุมการเข้าถึงของผู้ใช้
เพื่อจำกัดว่าผู้ใช้คนใดสามารถสร้างงาน Cron ได้ ให้ใช้ไฟล์ /etc/cron.allow และ /etc/cron.deny การเพิ่มชื่อผู้ใช้ลงใน /etc/cron.allow จะทำให้เฉพาะผู้ใช้คนนั้นเท่านั้นที่สามารถกำหนดค่างาน Cron ได้:
echo "user_name" >> /etc/cron.allow
ความปลอดภัยการเข้าสู่ระบบและงาน Cron
เมื่อ Cron ทำงานที่ต้องการการตรวจสอบสิทธิ์ อาจจำเป็นต้องทำอัตโนมัติคีย์ SSH หรือจัดการรหัสผ่านอย่างปลอดภัย.
6. การใช้ Anacron สำหรับงานที่ทำบ่อยน้อย
Anacron คืออะไร?
Anacron เป็นตัวจัดตารางงานที่ออกแบบมาสำหรับระบบที่ไม่ได้ทำงานต่อเนื่อง มันจะทำงานที่พลาดไปเมื่อระบบเริ่มทำงานครั้งต่อไป ทำให้เหมาะสำหรับเดสก์ท็อปและแล็ปท็อปที่ไม่ได้ออนไลน์ตลอดเวลา.
7. ตัวอย่างการใช้งาน Cron ที่เป็นประโยชน์
การทำสำรองข้อมูลอัตโนมัติ
ตัวอย่างงาน Cron ที่สร้างการสำรองข้อมูลประจำวันพร้อมเครื่องหมายเวลา:
0 2 * * * tar -zcf /var/backups/home_backup_$(date +\%Y-\%m-\%d).tgz /home/
8. สรุป
โดยการใช้ Cron และ Anacron คุณสามารถทำงานประจำให้เป็นอัตโนมัติอย่างมีประสิทธิภาพและเพิ่มความน่าเชื่อถือของการดำเนินการระบบของคุณ ทั้งสองเครื่องมือลดภาระการจัดการและทำให้แน่ใจว่าหน้าที่บำรุงรักษาที่สำคัญทำงานโดยอัตโนมัติ ลองนำเข้ามาใช้ในระบบของคุณเพื่อสัมผัสประโยชน์ด้านการดำเนินการด้วยตนเอง.


