ความแตกต่างระหว่าง cron.d (เช่นใน /etc/cron.d/) และ crontab คืออะไร?


18

อะไรคือข้อแตกต่างที่สำคัญระหว่างไดเรกทอรี cron.d (ดังใน/etc/cron.d/) และcrontab?

เท่าที่ผมเข้าใจหนึ่งสามารถสร้างไฟล์เหมือน/etc/cron.d/my_non_crontab_cronjobsและนำสิ่งที่ใครอยากอยู่ข้างในเช่นเดียวกับที่หนึ่งจะนำพวกเขาในทางcrontabcrontab -e

ดังนั้นความแตกต่างหลักระหว่างสองคืออะไร


ตำแหน่งในระบบและรูปแบบ
Rui F Ribeiro

รูปแบบ? จาก 2 ตัวอย่างที่ผมเคยเห็นก็ยังมีหน่วย 5 crontabเวลาไวยากรณ์หรือฉันสับสนกับ
Arcticooling

คำตอบ:


24

ความแตกต่างได้รับการบันทึกในรายละเอียดในmanpageใน Debian ความแตกต่างที่สำคัญคือที่บรรจุด้วยไฟล์แยกต่างหากในขณะที่จัดการหนึ่งไฟล์ต่อผู้ใช้; ดังนั้นจึงง่ายต่อการจัดการเนื้อหาของการใช้สคริปต์ (สำหรับการติดตั้งและการอัพเดตอัตโนมัติ) และง่ายต่อการจัดการโดยใช้เครื่องมือแก้ไข (สำหรับผู้ใช้ปลายทางจริงๆ)cron(8)/etc/cron.dcrontab/etc/cron.dcrontab

แตกต่างที่สำคัญอื่น ๆ ที่ไม่ได้แจกแจงสนับสนุน/etc/cron.dและแฟ้มใน/etc/cron.dต้องพบจำนวนหนึ่งของความต้องการ (นอกเหนือจากการเป็นงาน cron ที่ถูกต้อง): พวกเขาจะต้องเป็นของรากและต้องเป็นไปตามrun-parts'การตั้งชื่อ ( ไม่มีจุดเท่านั้น ตัวอักษรตัวเลขขีดล่างและขีดกลาง)

หากคุณกำลังพิจารณาที่จะใช้/etc/cron.dก็มักจะมีมูลค่าการพิจารณาอย่างใดอย่างหนึ่ง/etc/cron.hourly, /etc/cron.daily, /etc/cron.weeklyหรือ/etc/cron.monthlyแทน


1
และสำหรับตัวอย่างในโลกแห่งความเป็นจริงรายการcron.dโดยทั่วไปจะถูกเพิ่มผ่านการติดตั้งแพคเกจในขณะที่crontabไฟล์ต่างๆนั้นเต็มไปด้วยสิ่งต่าง ๆ ที่สร้างโดยผู้ใช้ที่เกี่ยวข้อง IE, certbotหรือletsencryptแพ็กเกจใส่รายการในcron.d- ก่อนที่แพ็กเกจจะพร้อมใช้งาน, sysadmin (root) จะเพิ่มรายการในผู้ใช้รูทที่crontabชี้ไปยังเชลล์สคริปต์ / etc เพื่อให้ใบรับรองทันสมัย
ivanivan

ขอบคุณสตีเฟ่น! ทำไมคุณแนะนำให้ใช้ไดเรกทอรี cron รายชั่วโมง / รายสัปดาห์ / รายเดือน และ BTW ทำไมหน้าคนที่นั่นเรียกว่า cron (8) สิ่งที่ 8 สำหรับ (หน้าคนสำหรับ crontab ชื่อ crontab (1))
Arcticooling

1
@Arcticooling ดูคำถามนี้สำหรับคำอธิบายของ(8)
4556274

ไดเรกทอรีรายชั่วโมง ฯลฯ ทำให้การเพิ่มงานง่ายขึ้น (ไม่จำเป็นต้องพิจารณาไวยากรณ์ที่แน่นอน) และที่สำคัญกว่านั้นอนุญาตให้ระบบเปลี่ยนเวลาดำเนินการจริงขึ้นอยู่กับสถานการณ์ anacronนี้จะเป็นประโยชน์โดยเฉพาะอย่างยิ่งในระบบที่ไม่ได้เสมอกับ
สตีเฟ่น Kitt

1
ข้อเสียของhourly|daily|weekly|monthlyไดเรกทอรีคือ (AFAICT) พวกเขามักจะเรียกใช้ในฐานะ root และไม่สนับสนุนการเรียกใช้โดยตรงโดยมีสิทธิ์น้อยลง
ilkkachu

5

ฉันจะบอกว่าความแตกต่างที่สำคัญคือสิ่งที่ชัดเจน: /etc/crontabและ/etc/cron.dไม่สามารถแก้ไขได้โดยผู้ใช้ปกติในขณะที่ crontabs ต่อผู้ใช้ใน/var/spool/cronการcrontabแก้ไขเครื่องมือนั้น (ขึ้นอยู่กับcron.allowและcron.denyแน่นอน) แน่นอนว่าในระบบที่คุณเป็นผู้ดูแลระบบคุณสามารถใช้งานได้เช่นกัน บนระบบที่ใช้ร่วมกันผู้ใช้ทั่วไปสามารถใช้ได้เพียงหนึ่งระบบเท่านั้น

ที่เกี่ยวข้องกับสิ่งนี้คือฟิลด์พิเศษในไฟล์ทั้งระบบชื่อผู้ใช้ที่งานรันอยู่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.