ไดเรกทอรีบทความ
- 1 ครอนคืออะไร?
- 2 ครอนด์คืออะไร?
- 3 ความสัมพันธ์ระหว่าง cron และ crond: บริการและผู้ดำเนินการ
- 4 ไฟล์ crontab: รายการงาน cron
- 5 cron และ crond: การทำงานร่วมกันเบื้องหลังของพวกเขา
- 6 สถานการณ์การใช้งานในการจัดการระบบรายวัน
- 7 ความเข้าใจผิดระหว่าง cron และ crond: คำถามและคำตอบที่พบบ่อย
- 8 สรุป: สิ่งที่ขาดไม่ได้ของ cron และ crond
คุณอยู่ที่นั่นไหม ลินุกซ์ กำหนดค่างานที่กำหนดเวลาไว้บนระบบ แต่รู้สึกสับสนระหว่าง "cron" และ "crond" หรือไม่?
ใช่แล้ว หลายคนคงสงสัยว่า:“ทั้งสองมีความแตกต่างกันอย่างไร?” แม้ว่าพวกมันจะดูเหมือนฝาแฝด แต่เมื่อตรวจสอบอย่างใกล้ชิดแล้ว ก็มีความแตกต่างที่ละเอียดอ่อนแต่สำคัญระหว่างพวกมัน
บทความนี้จะพาคุณเจาะลึกถึงคุณลักษณะเฉพาะและหลักการทำงาน
ครอนคืออะไร?
ให้เราเริ่มต้นด้วย cron ก่อนอื่นชื่อนี้จะต้องคุ้นเคยกับคุณ
cron จริงๆ แล้วเป็นทั้งชุดของ ระบบกำหนดเวลางานตามกำหนดการซึ่งมีชื่อมาจากรากศัพท์ภาษากรีก”chronos” แปลว่า เวลา
ระบบครอนเป็นตัวกำหนดเวลางานที่กำหนดเวลาไว้สำหรับระบบ Linux ซึ่งใช้เพื่อดำเนินงานที่ระบุโดยอัตโนมัติ ณ จุดเวลาที่กำหนด
ตัวอย่างเช่น คุณสามารถกำหนดเวลาให้สคริปต์สำรองข้อมูลดำเนินการทุกเช้า ตรวจสอบสถานะของระบบทุกชั่วโมง เป็นต้น

ฟังก์ชั่นหลักครอน
หน้าที่หลักของ cron คือการทำให้การจัดการและการทำงานของระบบเป็นแบบอัตโนมัติ งานเหล่านี้มักเรียกว่า "งานที่กำหนดไว้” หรือ “งานที่กำหนดเวลาไว้”
ระบบ cron จะอ่าน crontab ไฟล์(ตาราง cron) ไฟล์เหล่านี้ประกอบด้วยตารางเวลางานและรายการคำสั่ง และ cron จะดำเนินการงานเหล่านี้โดยอัตโนมัติตามเวลาที่กำหนดตามการตั้งค่าในไฟล์ crontab
ก็สามารถพูดได้ว่าcron เป็น "ผู้วางแผน" สำหรับการกำหนดเวลางานที่กำหนดเวลาไว้มีหน้าที่กำหนดตารางเวลาการทำงานทั้งหมด
ใช้คำสั่ง crontab
ในระบบ Linux ระบบ cron ประกอบด้วย crontab สั่งให้จัดการ. ผ่าน crontab คำสั่งคุณสามารถเพิ่ม แก้ไข และลบงานที่กำหนดเวลาไว้ได้
使用 crontab -e คำสั่งเพื่อเข้าสู่โหมดแก้ไขคุณสามารถเพิ่มงานที่คุณต้องการดำเนินการในตาราง cron ได้โดยมีรูปแบบดังนี้:
* * * * * /path/to/command
สัญลักษณ์ "*" แต่ละตัวแสดงถึงหน่วยเวลาที่แตกต่างกัน เช่น นาที ชั่วโมง วัน เดือน และสัปดาห์ ด้วยการกำหนดค่าเวลาเหล่านี้ คุณสามารถควบคุมได้ว่างานต่างๆ จะดำเนินการเมื่อใด
ครอนด์คืออะไร?
ตอนนี้เราเข้าใจแนวคิดของ cron แล้ว มาดูกันดีกว่า cron- นี่คือ "ฮีโร่ผู้อยู่เบื้องหลัง" ของระบบ cron
crond ใช้สำหรับระบบ cron ภูตเป็นโปรแกรมที่ทำงานอย่างต่อเนื่องในพื้นหลังและมีหน้าที่ตรวจสอบเวลาของระบบและดำเนินการงานที่ระบบ cron กำหนดไว้
ความรับผิดชอบของครอนด์
กระบวนการ crond จะเริ่มต้นโดยอัตโนมัติเมื่อระบบเริ่มทำงานและทำงานอยู่เบื้องหลังเสมอ หน้าที่เดียวคือดำเนินการงานในไฟล์ crontab ตามเวลาที่กำหนด
ก็สามารถพูดได้ว่าcrond คือ "ตัวดำเนินการ" ของระบบ cron.
หากไม่มีกระบวนการ crond ระบบ cron จะสูญเสียความสามารถในการดำเนินงานตามกำหนดเวลา
ในระบบ Linux คุณสามารถใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่ากระบวนการ crond กำลังทำงานอยู่หรือไม่:
ps -ef | grep crond
หากกระบวนการ crond ไม่ทำงาน งานที่กำหนดเวลาไว้ทั้งหมดจะไม่ถูกดำเนินการ ดังนั้นจึงจำเป็นอย่างยิ่งที่จะต้องทำให้กระบวนการ crond ทำงานตามปกติ
ความสัมพันธ์ระหว่าง cron และ crond: บริการและผู้ดำเนินการ
เพื่อให้เข้าใจความสัมพันธ์ระหว่าง cron และ crond ได้ดีขึ้น เราสามารถใช้ aชีวิตตัวอย่างใน.
ลองนึกภาพ: คุณมีคนชื่อ "หนังสือสีแดงเล็ก ๆ” ซึ่งเป็นระบบขนาดใหญ่ที่ให้ผู้ใช้สามารถดูและเผยแพร่เนื้อหาในเวลาที่กำหนด
เบื้องหลังแอปพลิเคชันนี้มีโปรแกรมชื่อ "Xiaohong Guardian" ซึ่งทำหน้าที่เผยแพร่เนื้อหาในเบื้องหลังโดยอัตโนมัติ
cron เปรียบเสมือน "หนังสือสีแดงเล่มเล็ก" และ crond ก็คือ "ผู้พิทักษ์ตัวน้อยสีแดง"
เพื่อสรุปความแตกต่างระหว่าง cron และ crond:
- cron: รับผิดชอบในการกำหนดและจัดการตารางงานและเป็น "สมอง" ของการจัดกำหนดการงาน
- cron: กระบวนการ daemon พื้นหลังซึ่งเป็น "ผู้ดำเนินการ" ของงานที่กำหนดเวลาไว้และดำเนินการงานตามกำหนดเวลาในตาราง cron
เมื่อมองเช่นนี้ cron คือระบบโดยรวม และ crond คือกระบวนการที่ดำเนินงานบนระบบ
ไฟล์ crontab: รายการงาน cron
รากฐานการดำเนินการของระบบ cron นั้นแยกออกไม่ได้ ไฟล์ crontabซึ่งเป็นที่ที่ระบบ cron จัดเก็บตารางเวลางาน
ผู้ใช้แต่ละคน (รวมถึงผู้ใช้รูท) สามารถมีไฟล์ crontab อิสระของตนเองเพื่อจัดการงานที่กำหนดเวลาไว้ของตนเอง
เราสามารถใช้ crontab -l คำสั่งเพื่อดูรายการงานของผู้ใช้ปัจจุบันหรือใช้ crontab -e เพื่อแก้ไขงาน
ไวยากรณ์ไฟล์ crontab
ในไฟล์ crontab แต่ละบรรทัดแสดงถึงงาน และรูปแบบของแต่ละบรรทัดมีดังนี้:
分钟 小时 日期 月份 星期 命令
ตัวอย่างเช่น งานต่อไปนี้แสดงถึงการรันสคริปต์สำรองข้อมูลเวลา 2 น. ทุกวัน:
0 2 * * * /usr/local/bin/backup.sh
ตัวอย่างง่ายๆ นี้แสดงให้เห็นถึงความสามารถอัตโนมัติอันทรงพลังของระบบ cron
cron และ crond: การทำงานร่วมกันเบื้องหลังของพวกเขา
ในการดำเนินการจริงของระบบ cron และ crond จะแยกกันไม่ออก cron มีหน้าที่ในการสร้างและจัดการตารางเวลางาน ในขณะที่ crond ติดตามเวลาอย่างต่อเนื่องและรับรองว่างานต่างๆ ได้รับการดำเนินการตามเวลาที่กำหนด
เมื่อใดก็ตามที่ระบบถึงเวลางานที่กำหนดไว้ล่วงหน้า crond จะ "ตื่น" และดำเนินการงาน
ทำไมเราถึงต้องการ crand daemon?
การมีอยู่ของ crond ช่วยให้มั่นใจได้ว่างานจะดำเนินการตรงเวลา โดยจะเริ่มโดยอัตโนมัติทุกครั้งที่ระบบเริ่มทำงานและทำงานต่อไป
หาก crond หยุดทำงาน งานทั้งหมดในระบบ cron จะไม่สามารถดำเนินการได้ ดังนั้นการทำงานปกติของ crond daemon จึงมีความสำคัญอย่างยิ่งต่อการจัดการระบบแบบอัตโนมัติ
สถานการณ์การใช้งานในการจัดการระบบรายวัน
การรวมกันของ cron และ crond ถูกนำมาใช้กันอย่างแพร่หลายในการจัดการระบบ โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมเซิร์ฟเวอร์ ต่อไปนี้เป็นสถานการณ์สมมติของแอปพลิเคชันทั่วไปบางส่วน:
- .: ด้วย cron คุณสามารถกำหนดเวลาเซิร์ฟเวอร์ให้สำรองข้อมูลเป็นประจำทุกวันหรือทุกสัปดาห์
- ทำความสะอาดอัตโนมัติ: ตั้งค่าการทำความสะอาดไฟล์บันทึกเป็นประจำเพื่อป้องกันไม่ให้พื้นที่ดิสก์ของเซิร์ฟเวอร์เต็ม
- การติดตามและเตือนภัย: ตรวจสุขภาพระบบผ่าน cron เป็นประจำ และส่งอีเมลแจ้งเตือนเมื่อพบความผิดปกติ
ความเข้าใจผิดระหว่าง cron และ crond: คำถามและคำตอบที่พบบ่อย
เหตุใดงาน cron จึงไม่ดำเนินการ?
หลายๆ คนจะพบว่างาน cron ที่พวกเขาตั้งไว้ไม่ได้รับการดำเนินการตามที่คาดไว้ สาเหตุอาจมีดังต่อไปนี้:
- กระบวนการ crond ยังไม่เริ่มต้น: โปรดตรวจสอบให้แน่ใจว่า crond ทำงานตามปกติ
- ข้อผิดพลาดในการกำหนดค่างาน: ตรวจสอบว่าไวยากรณ์ของไฟล์ crontab ถูกต้องหรือไม่
- ปัญหาเส้นทาง: ตรวจสอบให้แน่ใจว่าคำสั่งและเส้นทางสคริปต์ที่ระบุถูกต้อง
จะรีสตาร์ทกระบวนการ crond ได้อย่างไร?
หากกระบวนการ crond ผิดปกติ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อรีสตาร์ทได้:
sudo service crond restart
คำสั่งนี้จะรีสตาร์ทบริการ crond เพื่อให้แน่ใจว่างานทั้งหมดทำงานได้ตามปกติ
สรุป: สิ่งที่ขาดไม่ได้ของ cron และ crond
ความร่วมมือที่สมบูรณ์แบบระหว่าง cron และ crond ช่วยให้ระบบ Linux รันงานโดยอัตโนมัติโดยไม่ต้องมีการแทรกแซงของมนุษย์ ซึ่งช่วยปรับปรุงความสามารถในการจัดการอัตโนมัติของระบบอย่างมาก
cron ทำหน้าที่เป็นระบบกำหนดเวลาในการวางแผน และ crond ทำหน้าที่เป็นกระบวนการ daemon ที่รับผิดชอบในการดำเนินงาน
อาจกล่าวได้ว่าทั้งสองเสริมซึ่งกันและกันและร่วมกันสร้างระบบการจัดการงานอัตโนมัติที่ทรงพลังและยืดหยุ่น
ในการใช้งานรายวัน การเรียนรู้ความแตกต่างและแอปพลิเคชันของ cron และ crond จะทำให้คุณสะดวกสบายมากขึ้นในการจัดการเซิร์ฟเวอร์และบรรลุการดำเนินงานที่มีประสิทธิภาพมากขึ้น
ในอนาคต คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการใช้งานขั้นสูงของระบบ cron เพื่อเพิ่มประสิทธิภาพและทำให้กระบวนการจัดการระบบของคุณเป็นแบบอัตโนมัติต่อไป
cron และ crond เป็นพันธมิตรที่ดีที่ผู้ดูแลระบบ Linux ทุกคนต้องมี
หวัง Chen Weiliang บล็อก ( https://www.chenweiliang.com/ ) แบ่งปันว่า "cron และ crond แตกต่างกันอย่างไร" เรียนรู้เคล็ดลับฟังก์ชั่นต่างๆ ใน 1 นาที" จะช่วยคุณได้
ยินดีต้อนรับสู่การแบ่งปันลิงค์ของบทความนี้:https://www.chenweiliang.com/cwl-32188.html
หากต้องการปลดล็อคเคล็ดลับที่ซ่อนอยู่เพิ่มเติม ยินดีต้อนรับเข้าร่วมช่อง Telegram ของเรา!
แชร์และกดไลค์ถ้าคุณชอบ! การแชร์และการถูกใจของคุณคือแรงบันดาลใจอย่างต่อเนื่องของเรา!