Apa arti akhiran .d di Linux?


33

Saya mengkonfigurasi apache dan secara default saya memiliki direktori /etc/httpd/confdan /etc/httpd/conf.d. Apa bedanya?

Anda juga dapat melihat akhiran di banyak direktori lain seperti /etc/init.d, /etc/cron.d, dll ...


1
itu berarti mengacu pada daemon
dinamis


8
@ yes123: Teori itu tidak cocok dengan /etc/apt/sources.list.d/, /etc/profile.ddll
Martin

Dari jawaban yang diberikan oleh Haakon dan deltaray, saya bertanya-tanya apakah .dkepanjangan dari default. Tidak, menurut informasi di sini, tetapi tampaknya logis. Mungkin saya bisa melanjutkan dan berpikir seperti itu?
Smandoli

Jawaban:


44

"d" adalah singkatan dari direktori dan direktori tersebut adalah kumpulan dari file konfigurasi yang sering merupakan fragmen yang termasuk dalam file konfigurasi utama. Intinya adalah untuk memecah masalah konfigurasi untuk meningkatkan pemeliharaan.

Ketika Anda memiliki perbedaan seperti /etc/httpd/confvs /etc/httpd/conf.d, biasanya case itu /etc/httpd/confberisi berbagai jenis file konfigurasi, sementara .ddirektori berisi banyak contoh dari jenis file konfigurasi yang sama (seperti "modul untuk memuat", "situs untuk mengaktifkan" dll. ), dan administrator dapat menambah dan menghapus sesuai kebutuhan.


4
tetapi conf juga merupakan direktori, jadi jika keduanya adalah direktori, apa bedanya? Anda benar tentang ServerFault, apakah mungkin untuk memindahkannya?
SCL

Menambahkan sedikit tentang perbedaan, harap itu tidak sepenuhnya membingungkan :-)
Haakon

7
Direktori .d biasanya juga dimuat secara otomatis. Sebagai contoh, cron akan memeriksa cron.d dan mem-parsing file apa pun di sana, konfigurasi apache utama akan memiliki sesuatu seperti "include conf.d / *" yang akan menyertakan file apa pun dalam conf.d saat memuat ulang. Ini juga sangat berguna untuk manajemen paket modul. Manajer paket tidak harus mencoba mengedit file, itu hanya menjatuhkan konfigurasi untuk modul ke direktori .d yang benar, dan kemudian memuat kembali layanan.
Niall Donegan

13

Kekuatan pendorong utama di balik keberadaan konvensi penamaan direktori ini adalah untuk memudahkan pengelolaan paket file konfigurasi. Apakah rpm, deb atau apa pun, itu jauh lebih mudah (dan mungkin lebih aman) untuk dapat memasukkan file ke direktori sehingga secara otomatis dimasukkan ke dalam konfigurasi program daripada mencoba mengedit file konfigurasi global.

Contoh yang bagus untuk hal ini adalah logrotate. Dalam direktori /etc/logrotate.d adalah file config untuk hampir semua aplikasi yang telah Anda instal yang menyimpan log in / var / log . Beberapa dikelompokkan ke dalam konfigurasi syslog karena hampir setiap sistem memiliki pesan, file wtmp dan lastlog. Tetapi jika Anda menginstal Apache pada sistem Anda, Anda memerlukan cara mudah untuk secara otomatis menambahkan konfigurasi untuk memutar log Apache, sehingga hanya menjatuhkan file konfigurasi yang disebut httpd di /etc/logrotate.ddan logrotate dikonfigurasi untuk memasukkan file dalam direktori itu. Masing-masing dimiliki oleh paket untuk daemon dan jika Anda menghapus paket itu akan menghapus file. Ini pada dasarnya cara memodulasi file konfigurasi. Perhatikan bahwa ini perlu didukung oleh program, ini bukan sesuatu yang otomatis sistem lakukan untuk Anda atau sesuatu. Biasanya program yang melakukannya memiliki perintah config yang disebut include yang menentukan di mana direktori tersebut berada pada sistem file.

logrotate.d bahkan mungkin menjadi tempat pertama konvensi ini digunakan di luar direktori init.d dan rc.d untuk skrip init.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.