Apakah RHEL / CentOS menjalankan semua file cronjob di bawah /etc/cron.d/*, atau hanya sebagian saja?

19

Ini adalah sistem Red Hat Enterprise Linux 5 (RHEL). Kami mengelola sistem ini menggunakan CFengine.

Kami memiliki beberapa cronjobs yang berjalan dua kali lebih sering dari biasanya. Saya memeriksa cronjobs di bawah /etc/cron.d/dan direktori ini berisi skrip aktual yang disebut host-backup, dan juga berisi file cadangan cfengine yang disebut host-backup.cfsaved, seperti:

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

Apakah sistem operasi ini menjalankan semua file di /etc/cron.d/*, atau apakah hanya menjalankan file yang cocok dengan pola tertentu. Bisakah saya mengkonfigurasi ini, dan di mana ini didefinisikan?

Saya tidak dapat menemukan jawaban ini di dokumentasi RHEL atau CentOS.

Stefan Lasiewski
sumber

Jawaban:

20

(Jika Anda membayar untuk dukungan Red Hat, Anda harus bertanya kepada mereka pertanyaan semacam ini. Ini persis seperti yang Anda bayar!)

Dari halaman manual RHEL5crontab(5) :

Jika ada, /etc/cron.d/direktori diurai seperti direktori spool cron, kecuali bahwa file di dalamnya tidak spesifik untuk pengguna dan karenanya dibaca dengan /etc/crontabsintaks (pengguna ditentukan secara eksplisit di kolom 6).

(Apakah ada cara yang lebih sederhana untuk membaca halaman manual RHEL tanpa memiliki akses ke sana? Setidaknya dengan cara ini saya bisa melihat bahwa paragraf ini adalah bagian dari tambalan Red Hat, jadi itu bukan fitur standar Vixie Cron 4.1.)

Melihat sumber, saya melihat bahwa berkas berikut ini dilewati: .*, #*, *~. *.rpmnew, *.rpmorig, *.rpmsave. Jadi ya, *.cfsavedfile Anda dibaca selain yang asli.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Hai Giles, terima kasih saya menemukan sintaks yang sama persis dari vixie-cron-4.1-77.el5_4.1.src.rpm. Ironisnya, teks ini TIDAK termasuk dalam halaman manual untuk cron dan tidak disertakan dengan file teks pada sistem. Saya tidak yakin mengapa itu terjadi, tetapi ini adalah topik untuk diskusi lain.
Stefan Lasiewski
Dan saya memposting pertanyaan tindak lanjut di unix.stackexchange.com/questions/4815
Stefan Lasiewski
@ Giles: Anda menang. Sumber RedHat harus berisi jawaban pasti. Dalam hal ini, (sumbernya tampaknya berbeda dari file yang diinstal) [unix.stackexchange.com/questions/4815], tetapi itu adalah topik yang berbeda.
Stefan Lasiewski
6

Inilah jawaban dari dukungan RedHat:

Perlu diketahui bahwa semua file di bawah direktori cron.d diperiksa dan dieksekusi, pada dasarnya ini merupakan ekstensi dari file / etc / crontab (yaitu; efek yang sama jika Anda menambahkan entri ke file / etc / crontab)

Jadi, untuk menjawab pertanyaan saya, "Apakah sistem operasi ini menjalankan semua file di /etc/cron.d/*, atau hanya menjalankan file yang cocok dengan pola tertentu. Dapatkah saya mengonfigurasi ini, dan di mana ini didefinisikan?"

Semua file di bawah /etc/cron.d/* dieksekusi (Meskipun tampaknya ekstensi file tertentu seperti .rpmsave, * ~, dll diabaikan, menurut dokumentasi dalam file sumber). Tidak mungkin untuk mengkonfigurasi ini melalui file konfigurasi. Mengkonfigurasi ini mungkin dilakukan jika sumbernya dikompilasi ulang. Perilaku ini disebutkan dalam dokumentasi yang terkandung dengan sumber, tetapi tidak muncul di manual atau halaman manual apa pun yang dapat saya temukan.

Stefan Lasiewski
sumber
5

Saya pikir alasan Anda mengalami kesulitan melacak jawabannya adalah bahwa itu bukan pertanyaan khusus Topi Merah. Masalah yang Anda lihat adalah bagian dari fungsionalitas standar cron- setiap file dalam direktori yang Anda identifikasi secara otomatis diperlakukan sebagai pekerjaan terpisah .

Jadi, jawaban singkat untuk pertanyaan Anda adalah "ya, semua file dieksekusi". Ini bukan sesuatu yang saya pikir dapat dikonfigurasi.

mlschechter
sumber
2
Ada implementasi cron yang berbeda. Debian dan Ubuntu dikirimkan bersama Vixie Cron (3.0), dan penanganannya cron.ddijelaskan dalam halaman manualnya . RHEL dikirimkan dengan ISC cron 4.1 (garpu dari proyek yang sama), dan halaman manual (setidaknya pada CentOS ) tidak disebutkan cron.d.
Gilles 'SANGAT berhenti menjadi jahat'
1
@Gilles: Terima kasih untuk petunjuknya. Saya menggunakan Fedora, yang telah menginstal Cronie (juga merupakan garpu Vixie / ISC Cron). Halaman manual menyebutkan /etc/cron.dsebagai salah satu jalur pencarian. Saya minta maaf jika tidak ada cukup detail dalam jawaban saya - saya cukup yakin bahwa ini harus berlaku untuk Red Hat juga. Tolong beri tahu saya kalau bukan itu masalahnya
mlschechter
1
Setelah melihat ke dalamnya, ini justru pertanyaan khusus Topi Merah (lihat jawaban saya). Ini sangat spesifik untuk Red Hat sehingga CentOS berbeda, dan Fedora mungkin juga berbeda (tapi aku belum memeriksanya).
Gilles 'SO- stop being evil'
1
@Gilles - maaf atas keterlambatan dalam merespons. Pada Red Hat EL 5 , Red Hat menggunakan vixie-cron. RHEL 6 menggunakan kroni. Setelah meninjau dokumentasi RHEL 5, saya pikir itu mengkonfirmasi kesimpulan asli saya (jika salah sumber). Sekali lagi, terima kasih atas semua bantuan menggali untuk ini.
mlschechter