คำต่อท้าย. d หมายถึงอะไรใน Linux


33

ฉันกำลังกำหนดค่า Apache และโดยค่าเริ่มต้นผมมีไดเรกทอรีและ/etc/httpd/conf /etc/httpd/conf.dอะไรคือความแตกต่าง?

นอกจากนี้คุณสามารถดูคำต่อท้ายในไดเรกทอรีอื่น ๆ อีกมากมายเช่น/etc/init.d, /etc/cron.dฯลฯ ...


1
มันหมายถึงมันหมายถึงภูต
แบบไดนามิก

อุปกรณ์: askubuntu.com/questions/7648/…
Sirex

8
@ yes123: นั่นทฤษฎีไม่พอดีกันได้ดีกับ/etc/apt/sources.list.d/, /etc/profile.dฯลฯ
มาร์ติน

จากคำตอบของ Haakon และ deltaray ฉันสงสัยว่าจะ.dเป็นdefaultเช่นไร มันไม่ได้เป็นไปตามข้อมูลที่นี่ แต่ดูเหมือนว่ามีเหตุผล บางทีฉันสามารถไปข้างหน้าและคิดอย่างนั้นได้หรือไม่
Smandoli

คำตอบ:


44

"d" หมายถึงไดเร็กทอรีและไดเร็กทอรีดังกล่าวคือชุดของไฟล์การกำหนดค่าซึ่งมักจะเป็นแฟรกเมนต์ที่รวมอยู่ในไฟล์คอนฟิกูเรชันหลัก ประเด็นคือเพื่อแยกความกังวลเกี่ยวกับการกำหนดค่าเพื่อเพิ่มความสามารถในการบำรุงรักษา

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


4
แต่ conf เป็นไดเร็กตอรี่ด้วยดังนั้นถ้าทั้งคู่เป็นไดเร็กตอรี่อะไรคือความแตกต่าง? คุณถูกต้องเกี่ยวกับ ServerFault เป็นไปได้ไหมที่จะย้ายมัน
SCL

ที่เพิ่มเข้ามาเล็กน้อยเกี่ยวกับความแตกต่างหวังว่ามันจะไม่ทำให้เกิดความสับสนอย่างสิ้นเชิง :-)
ฮา

7
ไดเรกทอรี. d จะโหลดโดยอัตโนมัติเช่นกัน ตัวอย่างเช่น cron จะตรวจสอบ cron.d และแยกไฟล์ใด ๆ ที่อยู่ในนั้นการกำหนดค่า apache หลักจะมีบางอย่างเช่น "รวม conf.d / *" ซึ่งจะรวมไฟล์ใด ๆ ภายใน conf.d เมื่อโหลดใหม่ นอกจากนี้ยังมีประโยชน์อย่างมากสำหรับการจัดการแพ็คเกจของโมดูล ตัวจัดการแพคเกจไม่จำเป็นต้องพยายามแก้ไขไฟล์เพียงแค่วางการกำหนดค่าสำหรับโมดูลลงในไดเรกทอรี. d ที่ถูกต้องจากนั้นโหลดบริการอีกครั้ง
Niall Donegan

13

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

ตัวอย่างที่ดีของเรื่องนี้คือ logrotate ในไดเรกทอรี/etc/logrotate.dมีการปรับแต่งไฟล์สำหรับการปฏิบัติจริงทุกโปรแกรมที่คุณได้ติดตั้งที่เก็บบันทึกใน/ var / log บางส่วนถูกรวมเข้ากับการตั้งค่า syslog เพราะเกือบทุกระบบมีไฟล์ข้อความ wtmp และ lastlog แต่ถ้าคุณติดตั้ง Apache บนระบบของคุณคุณต้องมีวิธีที่ง่ายในการเพิ่มการกำหนดค่าโดยอัตโนมัติสำหรับการหมุนบันทึกของ Apache ดังนั้นมันจึงลดลงไฟล์การตั้งค่าที่เรียกว่า httpd ใน/etc/logrotate.dและมีการกำหนดค่า logrotate เพื่อรวมไฟล์ในไดเรกทอรีนั้น แต่ละแพ็กเกจเป็นของแพ็กเกจสำหรับ daemon และหากคุณลบแพ็กเกจออกจะเป็นการลบไฟล์ โดยพื้นฐานแล้วมันเป็นวิธีในการปรับแต่งไฟล์ปรับแต่ง โปรดทราบว่าสิ่งนี้จำเป็นต้องได้รับการสนับสนุนจากโปรแกรมไม่ใช่สิ่งที่เป็นระบบอัตโนมัติสำหรับคุณหรือบางสิ่ง โดยปกติแล้วโปรแกรมที่มีคำสั่ง config ที่เรียกว่าincludeที่ระบุว่าไดเรกทอรีนั้นอยู่ที่ใดในระบบไฟล์

logrotate.dอาจเป็นสถานที่แรกที่ใช้ระเบียบนี้นอกไดเรกทอรีinit.dและrc.dสำหรับสคริปต์ init

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.