เชี่ยวชาญ Cron บน Ubuntu: ทำงานตามกำหนดเวลาอัตโนมัติอย่างมืออาชีพ

目次

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 คุณสามารถทำงานประจำให้เป็นอัตโนมัติอย่างมีประสิทธิภาพและเพิ่มความน่าเชื่อถือของการดำเนินการระบบของคุณ ทั้งสองเครื่องมือลดภาระการจัดการและทำให้แน่ใจว่าหน้าที่บำรุงรักษาที่สำคัญทำงานโดยอัตโนมัติ ลองนำเข้ามาใช้ในระบบของคุณเพื่อสัมผัสประโยชน์ด้านการดำเนินการด้วยตนเอง.