Di linux, mengapa folder untuk file konfigurasi selalu bernama * .d

12

Di linux, mengapa folder untuk file konfigurasi selalu dinamai *.d?

Mengatakan

  • /etc/init.d
  • /etc/grub.d
  • /etc/apparmor.d
Qian
sumber
2
AskUbuntu memiliki jawaban untuk pertanyaan Anda.
Mehper C. Palavuzlar
Demikian juga situs Linux dan Unix StackExchange: unix.stackexchange.com/questions/4029/…
frabjous
Pertanyaan yang sama ini ditanyakan pada Server Fault sekitar 8 jam yang lalu.
Dijeda sampai pemberitahuan lebih lanjut.

Jawaban:

22

The .dberdiri untuk direktori. Ini adalah konvensi untuk membedakan konfigurasi berbasis direktori dari konfigurasi berdasarkan pada file konfigurasi tunggal. Seringkali Anda akan memiliki keduanya dalam beberapa kapasitas, misalnya /etc/logrotate.confdan /etc/logrotate.d/.

Biasanya juga semua file (yang diberi nama cukup) dalam direktori tersebut secara otomatis digabungkan menjadi satu konfigurasi. Paket kemudian dapat menginstal file ke direktori seperti itu, dan mereka akan digunakan secara otomatis. Sekali lagi, /etc/logrotate.d/adalah contoh yang bagus. Dengan konstrast, direktori file konfigurasi yang tidak berakhir di .dmungkin hanya berisi susunan acak file konfigurasi milik paket yang sama, dan Anda tidak dapat menyimpulkan apa pun tentang bagaimana mereka diproses, misalnya /etc/zsh/.

Peter Eisentraut
sumber
2

Untuk sedikit memperluas jawaban Peter, pola .d ini memungkinkan untuk penambahan dan penghapusan file konfigurasi yang lebih sederhana: untuk program .d yang diberikan, admin memiliki kemampuan untuk hanya menyalin atau menghapus file ke dalam direktori .d tanpa harus mengedit file konfigurasi yang ada.

Misalnya, jika Anda ingin menambahkan pekerjaan cron ke sistem Anda, Anda dapat mengedit / etc / crontab dengan pekerjaan terjadwal baru Anda menggunakan editor teks favorit Anda. Ini bagus untuk satu server atau beberapa server, tetapi coba lakukan itu pada 100 server jika Anda bekerja di lingkungan pusat data / cloud. Dalam kasus terakhir, Anda bisa menggunakan sesuatu seperti sed dengan file temp atau alat seperti ex untuk menulis file di tempat, tetapi ada sedikit risiko di sini jika Anda belum membuat perintah dengan benar. Memang, saya telah melihat file konfigurasi sepenuhnya nuked karena kesalahan ketik pada perintah edit ini.

Sekarang bandingkan dengan menempatkan file dengan pekerjaan terjadwal Anda ke /etc/cron.d. Anda cukup menyalin file ke dalamnya, dan saat berikutnya cron berjalan (biasanya setiap menit), itu akan melihat file baru dan akan sumber / memprosesnya sesuai. Ini bagus seperti yang dinyatakan Peter jika Anda ingin menggulung paket Anda sendiri: file /etc/cron.d hanyalah file lain dalam arsip paket yang diinstal. Saat menghapus paket, file cron.d dihapus dan cron Anda tidak lagi berjalan.

Akhirnya, setiap program yang memiliki direktori .d dapat memiliki implementasi sendiri sejauh bagaimana file tersebut bersumber, seperti termasuk urutan dan konfigurasi yang menimpa. Jadi, setiap kali Anda memutuskan untuk menempatkan file dalam direktori .d, selalu pastikan bahwa ia melakukan apa yang Anda inginkan dan jangan hanya menganggap itu berfungsi seperti halnya untuk program lain yang memiliki direktori .d.

Antony Nguyen
sumber