หลังจากลบไฟล์ขนาดใหญ่ต้องใช้เวลานานเท่าไรในการรับการเปลี่ยนแปลง


12

ฉันลบไฟล์บันทึก 2.3GB บนเซิร์ฟเวอร์ Ubuntu ของฉันและdfดูเหมือนจะไม่ได้รับการเปลี่ยนแปลง โดยทั่วไปจะมีความล่าช้าก่อนที่dfจะตรวจพบว่าไฟล์ขนาดใหญ่ถูกลบหรือไม่

คำตอบ:


20

ดูเหมือนว่าไฟล์จะยังคงเปิดอยู่โดยบางกระบวนการ คุณจะต้องรีสตาร์ทบริการนั้นเพื่อให้พื้นที่ดิสก์ว่าง


1
โดยเฉพาะอย่างยิ่งมีแนวโน้มที่จะเป็นจริงสำหรับล็อกไฟล์ หลายโปรแกรมเปิดไฟล์บันทึกของพวกเขาเมื่อพวกเขาเริ่มและไม่ปิดพวกเขาจนกว่าจะออก
mattdm

1
และคุณสามารถดูว่ายังใช้งานอยู่หรือไม่และใครใช้ lsof
Joris

คำถามที่ดีและคำตอบที่ดี ฉันเคยสงสัยเรื่องนี้มาระยะหนึ่งแล้ว นอกจากนี้คุณอาจสามารถปิดการจัดการไฟล์โดยส่ง SIGHUP ตัวอย่างเช่นหากกระบวนการ 12345 มีไฟล์ "ลบ" เปิดอยู่sudo kill -HUP 12345อาจทำให้กระบวนการนั้นปิดได้ (ขึ้นอยู่กับวิธีการที่กระบวนการจัดการสัญญาณ SIGHUP แต่ไฟล์ daemon ที่มุ่งเน้นจำนวนมากจะปิดและเปิดการจัดการไฟล์อีกครั้งเมื่อพวกเขาได้รับ SIGHUP)
Mark E. Haase

ฉันคิดว่าเราไม่สามารถลบไฟล์ที่เปิดได้!
Ashish Karpe

1
@AshishKarpe ไม่คุณสามารถลบไฟล์ที่เปิดอยู่ แต่กระบวนการที่เปิดไว้จะเก็บเนื้อหาของไฟล์ไว้ในดิสก์ ตอนนี้ไฟล์จะถูกมองไม่เห็นต่อกระบวนการอื่นเนื่องจากไม่ได้อ้างถึงโดยชื่อไฟล์ใด ๆ ที่มีอยู่ แต่กระบวนการที่เปิดไว้นั้นยังคงสามารถอ่านและเขียนได้ เมื่อกระบวนการนั้นปิดไฟล์เนื้อหาจะถูกลบออกซึ่งจะเป็นการเรียกคืนพื้นที่ดิสก์
Jonathan Hartley

2

หากระบบไฟล์ไม่มีพื้นที่ว่างคุณสามารถใช้พื้นที่ที่สงวนไว้ในระบบไฟล์ได้ ระบบไฟล์ ext2 / 3/4 มีบางพื้นที่ที่สงวนไว้สำหรับรูท โดยค่าเริ่มต้นนี่คือ 5% ดังนั้นถ้ามันเต็มและ 2.3GB นั้นน้อยกว่า 5% ของพื้นที่บนไดรฟ์ระบบไฟล์จะยังคงเต็ม

ในสถานการณ์นี้คุณมีสองทางเลือก ในการเพิ่มพื้นที่ว่างต่อไปจนถึงจุดที่คุณมีพื้นที่ว่างที่สามารถใช้งานได้หรือแก้ไขปริมาณพื้นที่ที่ระบบไฟล์สำรองไว้ ในการปรับเปลี่ยนปริมาณพื้นที่สงวนใช้การtune2fs -m 0 /dev/sda1แทนที่ 0 ด้วยเปอร์เซ็นต์ของพื้นที่สงวนที่คุณต้องการมีและ / dev / sda1 ด้วยอุปกรณ์ที่เหมาะสม

ดูคำตอบที่ยอมรับสำหรับคำถามนี้สำหรับรายละเอียดเพิ่มเติม


0

ไม่นาน. มีโอกาสสูงที่ไฟล์จะยังคงถูกใช้งานอยู่ จะไม่มีพื้นที่ว่างในดิสก์จนกว่าคุณจะยุติกระบวนการที่เกี่ยวข้อง


0

ตรวจสอบไดเรกทอรี. trash ของคุณด้วย


ไดเร็กทอรี. trash นี้อยู่ที่ไหน
Ashish Karpe

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