RHEL / CentOS เรียกใช้ไฟล์ cronjob ทั้งหมดภายใต้ /etc/cron.d/* หรือแค่บางไฟล์?


19

นี่คือระบบ Red Hat Enterprise Linux 5 (RHEL) เราจัดการระบบนี้โดยใช้ CFengine

เรามี cronjobs หลายตัวที่ทำงานสองครั้งบ่อยเท่าปกติ ฉันตรวจสอบ cronjobs ภายใต้/etc/cron.d/และไดเรกทอรีนี้มีสคริปต์จริงที่เรียกว่าhost-backupและยังมีไฟล์สำรอง cfengine เรียกว่าhost-backup.cfsavedเป็นดังนี้:

/etc/cron.d/host-backup
/etc/cron.d/host-backup.cfsaved

ระบบปฏิบัติการนี้เรียกใช้ไฟล์ทั้งหมดที่ใช้/etc/cron.d/*หรือไม่ใช้เฉพาะไฟล์ที่ตรงกับรูปแบบที่กำหนด ฉันสามารถกำหนดค่าสิ่งนี้และสิ่งนี้กำหนดไว้ที่ไหน?

ฉันไม่พบคำตอบนี้ในเอกสาร RHEL หรือ CentOS

คำตอบ:


20

(หากคุณจ่ายสำหรับการสนับสนุน Red Hat คุณควรถามคำถามแบบนี้นี่คือสิ่งที่คุณจ่ายไป!)

จากหน้าคนRHEL5crontab(5) :

หากมีอยู่/etc/cron.d/ไดเร็กทอรีจะถูกวิเคราะห์คำเหมือนไดเร็กทอรี cron spool ยกเว้นว่าไฟล์ในนั้นไม่ใช่ไฟล์ที่ผู้ใช้ระบุและถูกอ่านด้วย/etc/crontabไวยากรณ์ (ผู้ใช้ถูกระบุไว้อย่างชัดเจนในคอลัมน์ที่ 6)

(มีวิธีที่ง่ายกว่าในการอ่านหน้าคนของ RHEL โดยไม่ต้องเข้าถึงหน้านี้อย่างน้อยฉันจะเห็นว่าย่อหน้านี้เป็นส่วนหนึ่งของแพทช์ Red Hat ดังนั้นจึงไม่ใช่ฟีเจอร์มาตรฐาน Vixie Cron 4.1)

.*มองไปที่แหล่งที่มาผมเห็นว่าไฟล์ต่อไปนี้จะถูกข้าม: #*, *~, *.rpmnew, ,*.rpmorig *.rpmsaveใช่แล้ว*.cfsavedไฟล์ของคุณจะอ่านนอกเหนือจากต้นฉบับ


vixie-cron-4.1-77.el5_4.1.src.rpmสวัสดีไจลส์ขอบคุณฉันพบว่าไวยากรณ์เดียวกันแน่นอนจาก แดกดันข้อความนี้ไม่รวมอยู่ในหน้าใดหน้าหนึ่งของ cron และไม่รวมอยู่ในไฟล์ข้อความใด ๆ ในระบบ ฉันไม่แน่ใจว่าเป็นเช่นนั้น แต่เป็นหัวข้อสำหรับการอภิปรายอื่น
Stefan Lasiewski

และฉันโพสต์คำถามติดตามที่unix.stackexchange.com/questions/4815
Stefan Lasiewski

@Giles: คุณชนะ แหล่ง RedHat ควรมีคำตอบที่ชัดเจน ในกรณีนี้ (แหล่งที่มาดูเหมือนแตกต่างจากไฟล์ที่ติดตั้ง) [unix.stackexchange.com/questions/4815] แต่นั่นเป็นหัวข้อที่แตกต่างกัน
Stefan Lasiewski

6

นี่คือคำตอบจากฝ่ายสนับสนุน RedHat:

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

ดังนั้นเพื่อตอบคำถามของฉัน "ระบบปฏิบัติการนี้เรียกใช้ไฟล์ทั้งหมดที่ /etc/cron.d/* หรือใช้เฉพาะไฟล์ที่ตรงกับรูปแบบที่กำหนดฉันสามารถกำหนดค่านี้ได้หรือไม่

ไฟล์ทั้งหมดภายใต้ /etc/cron.d/* จะถูกเรียกใช้งาน (แม้ว่าดูเหมือนว่านามสกุลไฟล์บางอย่างเช่น. rpmsave, * ~ ฯลฯ จะถูกละเว้นตามเอกสารในไฟล์ต้นฉบับ) ไม่สามารถกำหนดค่านี้ผ่านไฟล์กำหนดค่า การกำหนดค่านี้อาจเป็นไปได้หากแหล่งที่มานั้นถูกคอมไพล์ใหม่ ลักษณะการทำงานนี้ถูกกล่าวถึงในเอกสารที่มีแหล่งที่มา แต่ไม่ปรากฏในคู่มือหรือหน้าคนที่ฉันสามารถหาได้


5

ฉันคิดว่าเหตุผลที่คุณมีปัญหาในการติดตามคำตอบก็คือไม่ใช่คำถามเฉพาะ Red Hat ปัญหาที่คุณเห็นเป็นส่วนหนึ่งของการทำงานมาตรฐานcron- แต่ละไฟล์ในไดเรกทอรีที่คุณระบุจะได้รับการรักษาโดยอัตโนมัติเป็นงานที่แยกต่างหาก

ดังนั้นคำตอบสั้น ๆ สำหรับคำถามของคุณคือ "ใช่ไฟล์ทั้งหมดจะถูกดำเนินการ" นี่ไม่ใช่สิ่งที่ฉันคิดว่าสามารถกำหนดค่าได้


2
มีการนำ cron ไปใช้งานต่างกัน Debian และ Ubuntu มาพร้อมกับ Vixie Cron (3.0) และการจัดการcron.dอธิบายไว้ในman page ของมัน เรือ RHEL กับ ISC cron 4.1 (ส้อมของโครงการเดียวกัน) และหน้าคน (อย่างน้อยใน CentOS ) cron.dไม่ได้พูดถึง
Gilles 'หยุดชั่วร้าย'

1
@Gilles: ขอบคุณสำหรับตัวชี้ ฉันใช้ Fedora ซึ่งติดตั้ง Cronie (เช่นส้อม Vixie / ISC Cron) หน้าคนไม่เอ่ยถึง/etc/cron.dว่าเป็นหนึ่งในเส้นทางการค้นหา ฉันขอโทษถ้ามีรายละเอียดไม่เพียงพอในคำตอบของฉัน - ฉันแน่ใจว่าสิ่งนี้ควรนำไปใช้กับ Red Hat ด้วย โปรดแจ้งให้เราทราบหากไม่เป็นเช่นนั้น
mlschechter

1
หลังจากตรวจสอบแล้วนี่เป็นคำถามเฉพาะของ Red Hat (ดูคำตอบของฉัน) เฉพาะ Red Hat ดังนั้นแม้ CentOS จะแตกต่างกันและ Fedora ก็อาจแตกต่างกันเช่นกัน (แต่ฉันไม่ได้ตรวจสอบ)
Gilles 'หยุดความชั่วร้าย'

1
@Gilles - ขออภัยในความล่าช้าในการตอบสนอง ตั้งแต่Red Hat EL 5 Red Hat ใช้ vixie-cron RHEL 6ใช้ cronie หลังจากตรวจสอบเอกสาร RHEL 5 ฉันคิดว่าเอกสารยืนยันข้อสรุปต้นฉบับของฉัน (หากแหล่งที่มาไม่ถูกต้อง) ขอขอบคุณอีกครั้งสำหรับความช่วยเหลือในการขุดหาสิ่งนี้
mlschechter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.