Hậu tố .d có nghĩa là gì trong Linux?


33

Tôi đang cấu hình apache và theo mặc định tôi có các thư mục /etc/httpd/conf/etc/httpd/conf.d. Sự khác biệt là gì?

Ngoài ra bạn sẽ nhìn thấy hậu tố trong nhiều thư mục khác như /etc/init.d, /etc/cron.d, vv ...


1
nó có nghĩa là nó đề cập đến một daemon
động


8
@ yes123: Lý thuyết đó không phù hợp với /etc/apt/sources.list.d/, /etc/profile.dv.v.
Martin

Từ những câu trả lời được đưa ra bởi Haakon và deltaray, tôi tự hỏi liệu có phải .dlà viết tắt của default. Nó không, theo thông tin ở đây, nhưng nó có vẻ hợp lý. Có lẽ tôi có thể đi trước và nghĩ về nó theo cách đó?
Smandoli

Câu trả lời:


44

"d" là viết tắt của thư mục và một thư mục như vậy là một tập hợp các tệp cấu hình thường là các đoạn được bao gồm trong tệp cấu hình chính. Vấn đề là ngăn chặn các mối quan tâm cấu hình để tăng khả năng bảo trì.

Khi bạn có một sự khác biệt như /etc/httpd/confvs /etc/httpd/conf.d, thường là trường hợp /etc/httpd/confchứa nhiều loại tệp cấu hình khác nhau, trong khi một .dthư mục chứa nhiều phiên bản của cùng một loại tệp cấu hình (chẳng hạn như "mô-đun để tải", "trang web để bật", v.v. ) và quản trị viên có thể thêm và xóa khi cần.


4
nhưng conf cũng là một thư mục, vậy nếu cả hai đều là thư mục thì sự khác biệt là gì? Bạn nói đúng về ServerFault, có thể di chuyển nó không?
SCL

Đã thêm một chút về sự khác biệt, hy vọng nó không hoàn toàn khó hiểu :-)
Haakon

7
Các thư mục .d cũng thường được tự động tải. Ví dụ: cron sẽ kiểm tra cron.d và phân tích bất kỳ tệp nào trong đó, cấu hình apache chính sẽ có nội dung như "bao gồm conf.d / *" sẽ bao gồm bất kỳ tệp nào trong conf.d khi tải lại. Nó cũng thực sự tiện dụng cho việc quản lý gói các mô-đun. Trình quản lý gói không phải cố gắng chỉnh sửa các tệp, nó chỉ bỏ cấu hình cho mô-đun vào thư mục .d chính xác, sau đó tải lại dịch vụ.
Niall Donegan

13

Động lực chính đằng sau sự tồn tại của quy ước đặt tên thư mục này là để quản lý gói tệp cấu hình dễ dàng hơn. Cho dù vòng / phút của nó, deb hay bất cứ điều gì, sẽ dễ dàng hơn (và có thể an toàn hơn) để có thể thả tệp vào một thư mục để nó được tự động đưa vào cấu hình của chương trình thay vì cố gắng chỉnh sửa tệp cấu hình chung.

Một ví dụ tốt về điều này là logrotate. Trong thư mục /etc/logrotate.d là các tệp cấu hình cho thực tế mọi ứng dụng bạn đã cài đặt giữ nhật ký / var / log . Một số được tập hợp vào cấu hình syslog vì gần như mọi hệ thống đều có tệp tin, wtmp và tệp Lastlog. Nhưng nếu bạn cài đặt Apache trên hệ thống của mình, bạn cần một cách dễ dàng tự động thêm cấu hình để xoay vòng nhật ký của Apache, do đó, nó chỉ làm rơi một tệp cấu hình có tên httpd trong /etc/logrotate.dvà logrotate được cấu hình để bao gồm các tệp trong thư mục đó. Mỗi cái được sở hữu bởi gói cho daemon và nếu bạn gỡ bỏ gói thì nó sẽ xóa tệp. Về cơ bản nó là một cách để mô đun hóa các tập tin cấu hình. Lưu ý rằng điều này cần được chương trình hỗ trợ, nó không phải là thứ tự động mà hệ thống làm cho bạn hoặc một cái gì đó. Thông thường các chương trình thực hiện nó có một lệnh cấu hình được gọi bao gồm xác định vị trí thư mục đó nằm trên hệ thống tập tin.

logrotate.d thậm chí có thể là nơi đầu tiên quy ước này được sử dụng bên ngoài các thư mục init.dRC.d cho các tập lệnh init.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.