Cron เป็นเครื่องมือสำคัญสำหรับการตั้งเวลาทำงานต่างๆ บน Ubuntu บทความนี้จะแนะนำวิธีการตั้งค่าให้ Cron เริ่มทำงานอัตโนมัติหลังจากรีบูตเครื่อง เพื่อให้มั่นใจว่างานที่กำหนดไว้จะทำงานได้อย่างราบรื่น
ทำไมต้องตั้งค่า Cron ให้เริ่มทำงานอัตโนมัติ
Cron คือตัวจัดตารางงานตามเวลาในระบบปฏิบัติการแบบ Unix ช่วยให้ผู้ใช้สามารถกำหนดคำสั่งหรือสคริปต์ให้ทำงานโดยอัตโนมัติตามเวลา วันที่ หรือช่วงเวลาที่กำหนด ซึ่งจำเป็นสำหรับงานต่างๆ เช่น การบำรุงรักษาระบบ การสำรองข้อมูล และการสร้างรายงาน หากไม่ได้ตั้งค่า Cron ให้เริ่มทำงานอัตโนมัติ งานเหล่านี้จะไม่ทำงานต่อหลังจากรีบูตระบบ ซึ่งอาจทำให้ขั้นตอนการทำงานหยุดชะงักและข้อมูลสูญหาย
วิธีตั้งค่า Cron ให้เริ่มทำงานอัตโนมัติหลังรีบูต Ubuntu
มีหลายวิธีในการตั้งค่า Cron ให้เริ่มทำงานโดยอัตโนมัติหลังจากรีบูตใน Ubuntu นี่คือรายละเอียดของวิธีการที่ใช้กันทั่วไปและมีประสิทธิภาพมากที่สุด
การใช้ systemd
(แนะนำ)
systemd
คือระบบ init เริ่มต้นสำหรับ Linux ส่วนใหญ่ รวมถึง Ubuntu ซึ่งเป็นวิธีที่เสถียรและเชื่อถือได้ในการจัดการบริการ
- ตรวจสอบสถานะ Cron: ตรวจสอบว่า Cron กำลังทำงานอยู่หรือไม่:
systemctl status cron
. - เปิดใช้งาน Cron เมื่อบูต: ใช้คำสั่งต่อไปนี้เพื่อเปิดใช้งาน Cron ให้เริ่มทำงานอัตโนมัติเมื่อบูต:
sudo systemctl enable cron
. - เริ่มบริการ Cron: หาก Cron ยังไม่ทำงาน ให้เริ่มต้นด้วย:
sudo systemctl start cron
. - ตรวจสอบการกำหนดค่าการเริ่มต้นอัตโนมัติ: ยืนยันว่า Cron ได้รับการตั้งค่าให้เริ่มทำงานอัตโนมัติหลังจากรีบูตด้วย:
systemctl is-enabled cron
. ผลลัพธ์ควรเป็น “enabled”.
การใช้ update-rc.d
(ระบบเดิม)
แม้ว่า systemd
จะเป็นวิธีที่แนะนำ แต่ระบบ Ubuntu รุ่นเก่าอาจยังคงใช้ update-rc.d
.
- ตรวจสอบสถานะ Cron: ตรวจสอบว่า Cron ได้รับการติดตั้งและกำลังทำงานอยู่หรือไม่:
/etc/init.d/cron status
. - เปิดใช้งาน Cron เมื่อบูต: ใช้คำสั่งนี้เพื่อกำหนดค่า Cron สำหรับการเริ่มต้นอัตโนมัติ:
sudo update-rc.d cron defaults
. - ตรวจสอบการกำหนดค่า: ตรวจสอบว่า symbolic links ถูกสร้างอย่างถูกต้องในไดเรกทอรี
/etc/rc*.d
.
การกำหนดค่าด้วยตนเอง (ผู้ใช้ขั้นสูง)
สำหรับการควบคุมที่ละเอียดขึ้น คุณสามารถเพิ่มสคริปต์เริ่มต้นด้วยตนเอง
-
สร้างสคริปต์เริ่มต้น: สร้างไฟล์ชื่อ
/etc/init.d/mycron
พร้อมเนื้อหาต่อไปนี้:#!/bin/bash # /etc/init.d/mycron case "$1" in start) /usr/sbin/cron -f & ;; stop) pkill cron ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0
-
ทำให้สคริปต์สามารถเรียกใช้งานได้:
sudo chmod +x /etc/init.d/mycron
. -
เพิ่มลงในลำดับการเริ่มต้น:
sudo update-rc.d mycron defaults
.
การสร้างสคริปต์เริ่มต้น Cron แบบกำหนดเองบน Ubuntu
การแก้ไขปัญหา Cron ไม่เริ่มทำงานอัตโนมัติ
หาก Cron ไม่เริ่มทำงานโดยอัตโนมัติหลังจากรีบูต นี่คือขั้นตอนการแก้ไขปัญหาบางส่วน:
- ตรวจสอบบันทึก: ตรวจสอบบันทึกของระบบ โดยเฉพาะ
/var/log/syslog
หรือ/var/log/messages
สำหรับข้อผิดพลาดที่เกี่ยวข้องกับ Cron - ตรวจสอบการกำหนดค่า Cron: ตรวจสอบให้แน่ใจว่าไฟล์กำหนดค่า Cron (
/etc/crontab
หรือ crontabs เฉพาะผู้ใช้ใน/var/spool/cron/crontabs/
) มีรูปแบบที่ถูกต้อง - ปัญหาสิทธิ์: ตรวจสอบสิทธิ์ไฟล์สำหรับไฟล์และไดเรกทอรีที่เกี่ยวข้องกับ Cron
- บริการที่ขัดแย้งกัน: ตรวจสอบให้แน่ใจว่าไม่มีบริการอื่นที่ขัดแย้งกับ Cron
สรุป
การตั้งค่า Cron ให้เริ่มทำงานอัตโนมัติหลังจากรีบูตบน Ubuntu เป็นสิ่งสำคัญสำหรับการรักษางานอัตโนมัติ ไม่ว่าคุณจะเลือกวิธี systemd
ที่แนะนำหรือวิธี update-rc.d
แบบเดิม การตรวจสอบให้แน่ใจว่าการกำหนดค่านี้ถูกต้องจะช่วยป้องกันการหยุดชะงักและทำให้มั่นใจได้ว่างานที่กำหนดเวลาไว้จะทำงานได้อย่างราบรื่น งาน Cron ที่กำหนดค่าอย่างถูกต้องมีส่วนสำคัญต่อความเสถียรและประสิทธิภาพของระบบ
คำถามที่พบบ่อย
- Cron ใช้สำหรับอะไร? Cron เป็นตัวจัดตารางงานตามเวลาที่ใช้ในการทำงานอัตโนมัติในระบบแบบ Unix
- ทำไมงาน Cron ของฉันไม่ทำงานหลังจากรีบูต? Cron อาจไม่ได้รับการกำหนดค่าให้เริ่มทำงานอัตโนมัติ หรืออาจมีข้อผิดพลาดในการกำหนดค่า Cron หรือสคริปต์
- ฉันจะตรวจสอบได้อย่างไรว่า Cron กำลังทำงานอยู่? ใช้
systemctl status cron
หรือ/etc/init.d/cron status
- systemd คืออะไร? Systemd คือระบบ init เริ่มต้นใน Linux ส่วนใหญ่ ซึ่งรับผิดชอบในการจัดการบริการของระบบ
- update-rc.d คืออะไร?
update-rc.d
คือยูทิลิตีบรรทัดคำสั่งที่ใช้ในการจัดการสคริปต์เริ่มต้นระบบ โดยเฉพาะอย่างยิ่งในระบบ Ubuntu รุ่นเก่า - ฉันควรทำอย่างไรหาก Cron ยังคงไม่เริ่มทำงานอัตโนมัติ? ตรวจสอบบันทึกของระบบเพื่อหาข้อผิดพลาด และตรวจสอบการกำหนดค่าและสิทธิ์ของ Cron
- ฉันสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับ Cron ได้ที่ไหน? คำสั่ง
man cron
ให้เอกสารโดยละเอียด
ต้องการความช่วยเหลือเพิ่มเติม? ติดต่อเราผ่าน WhatsApp: +1(641)206-8880, อีเมล: [email protected] หรือเยี่ยมชมเราที่ 321 Birch Drive, Seattle, WA 98101, USA ทีมสนับสนุนลูกค้าของเราพร้อมให้บริการตลอด 24 ชั่วโมงทุกวัน