การใช้พื้นที่ดิสก์ไม่เพิ่มขึ้นด้วย df & du


13

ฉันพยายามเพิ่มพื้นที่ว่างในดิสก์ - ถ้าฉันทำdf -hฉันมีระบบไฟล์ที่เรียกว่า / dev / mapper / vg00-var ซึ่งระบุว่า 4G, 3.8G ใช้ไปแล้วเหลือ 205M

ที่สอดคล้องกับไดเรกทอรี / var ของฉัน

ถ้าฉันลงไปใน / var และทำdu -kscxh *ผลรวมคือ 2.1G

2.1G + 200M ฟรี = 2.3G ... ดังนั้นคำถามของฉันคือ 1.7G ที่เหลืออยู่ที่ไหน


สิ่งที่ไม่du -shx /varพูด?
Kyle Smith

1
คุณสามารถลบไฟล์ที่มีตัวจัดการไฟล์แบบเปิดได้ ระบบปฏิบัติการจะไม่ปล่อยพื้นที่จนกว่าจะปิดที่จับ แต่คุณจะไม่เห็นพวกเขาด้วย "du" คุณสามารถเรียกใช้ "lsof / var | grep delete" (หรือสิ่งที่คล้ายกัน) เพื่อดู นี่ไม่ใช่การค้นพบที่น่าแปลกใจหากพูดว่า / var / log หากมีการหมุนบันทึก แต่กระบวนการบันทึกไม่ได้ HUP'ed ในทางที่ถูกต้อง
cjc

ฉันลบไฟล์บันทึกบางไฟล์ที่คลั่งไคล้ดูเหมือนว่าพวกเขาไม่ได้หมุน แต่อย่างไรก็ตามฉันมีอีเมลคำหนึ่งคำจากเพื่อน 'รีบูต' - คิดว่าเขากำลังประชดประชัน แต่ไม่ชัดเจน :) ฉัน ได้พบพื้นที่ดิสก์ของฉันอีกครั้ง .... ภัยพิบัติหันไป (ตอนนี้)
Codecraft

@Codecraft ใช่แล้วการรีบูตเครื่องจะช่วยจัดการกับไฟล์ที่เปิดอยู่อย่างชัดเจนแม้ว่ามันจะเหมือนกับการทุบไข่ด้วยค้อน
cjc

@cjc ตราบใดที่ฉันได้รับความดี yolky ... ! คำแนะนำใด ๆ เกี่ยวกับวิธีที่ฉันสามารถล้างตัวจัดการไฟล์แบบเปิดโดยไม่ใช้การตอกไข่
Codecraft

คำตอบ:


20

คุณอาจมีไฟล์บันทึกขนาดใหญ่ที่ถูกลบไฟล์ฐานข้อมูลหรือสิ่งที่คล้ายกันอยู่รอบ ๆ รอกระบวนการที่ถือไฟล์ปล่อย

ใน Linux การลบไฟล์เพียงแค่ยกเลิกการเชื่อมโยงไฟล์ มันจะถูกลบจริงๆเมื่อไม่มีไฟล์ที่จัดการเชื่อมต่อกับไฟล์นั้นอีกต่อไป ดังนั้นหากคุณมีล็อกไฟล์ขนาด 2 GB ซึ่งคุณลบด้วยตนเองด้วย rm พื้นที่ดิสก์จะไม่ถูกเพิ่มจนกว่าคุณจะรีสตาร์ท syslog daemon (หรือส่งHUPสัญญาณไปยังมัน)

ลอง

lsof -n | grep -i deleted

และดูว่าคุณมีไฟล์ซอมบี้ที่ถูกลบทิ้งอยู่หรือไม่


ฉันไม่ได้ใช้งานคำสั่งของคุณ แต่สิ่งที่คุณพูดดูเหมือนจะไม่ดี - ฉันได้ฆ่าบางบันทึก - ไป - บ้า - และท้ายที่สุดการรีบูตทำให้พื้นที่ดิสก์จะคำนวณใหม่และแสดงอย่างถูกต้อง
Codecraft

มันทำงานให้เราด้วย Apache บันทึกเติมไดเรกทอรี / var / log / apache / ดังนั้นคุณอาจไม่ต้องรีสตาร์ทเซิร์ฟเวอร์ทั้งหมดหรือ syslog เพียงแค่บริการที่คุณจะพบในผลลัพธ์ของคำสั่งด้านบน
Yvan

เพียงแค่มีสิ่งนี้เอง เรามี tomcat6 catalina. ไม่โดน logrotate เราจะลบมันเมื่อมันมาถึง 4Gb และ logrotate คงที่ หลายสัปดาห์ต่อมาเราสงสัยว่าทำไม 4Gb ไม่ได้กลับมา lsofคำสั่งนั้นแสดงว่าเรามีไฟล์ Tomcat จำนวนมากที่รอการลบ เริ่มต้นแมวตัวผู้และเรามีพื้นที่เหลือเฟือมากมาย!
Nick

ในที่สุดคำตอบที่เหมาะกับฉัน PostgreSQL ขัดข้องและปล่อยให้การเชื่อมต่อแบบเปิดไปยัง 400GiB (!!!) ของไฟล์ที่ไม่ได้ลิงก์บนดิสก์ 1TiB การเริ่ม Postgres ใหม่จะแก้ไข
sudo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.