Sử dụng dung lượng ổ đĩa không bổ sung với df & du


13

Tôi đang cố gắng giải phóng một số dung lượng ổ đĩa - nếu tôi làm một df -h, tôi có một hệ thống tập tin có tên / dev / mapper / vg00-var cho biết 4G, 3,8G đã sử dụng, còn lại 205M.

Điều đó tương ứng với thư mục / var của tôi.

Nếu tôi xuống / var và làm du -kscxh *, tổng số là 2.1G

2.1G + 200M miễn phí = 2.3G ... Vậy câu hỏi của tôi là, 1.7G còn lại ở đâu?


du -shx /varnói gì
Kyle Smith

1
Bạn cũng có thể xóa các tệp có xử lý tệp đang mở. HĐH sẽ không giải phóng không gian cho đến khi các tay cầm được đóng lại, nhưng bạn sẽ không thấy chúng với "du". Bạn có thể chạy "lsof / var | grep đã xóa" (hoặc một cái gì đó tương tự) để xem những cái đó. Điều này thực sự sẽ không phải là một phát hiện đáng ngạc nhiên, giả sử, / var / log, nếu các bản ghi được xoay nhưng quá trình ghi nhật ký không được HUP theo đúng cách.
cjc

Tôi đã xóa một số tệp nhật ký đã phát điên, dường như chúng không được quay, nhưng dù sao, tôi đã có một email từ một người bạn 'khởi động lại' - hình dung anh ta đang mỉa mai nhưng dường như không :) đã tìm thấy không gian đĩa của tôi một lần nữa .... thảm họa đã biến mất (bây giờ).
Codecraft

@Codecraft Vâng, việc khởi động lại chắc chắn sẽ xóa mọi xử lý tệp đang mở, mặc dù điều đó giống như đập một quả trứng bằng búa.
cjc

@cjc miễn là tôi có được lòng tốt ...! Bất kỳ đề xuất nào về cách tôi có thể xóa xử lý tệp mở mà không cần đập trứng?
Codecraft

Câu trả lời:


20

Bạn có thể có một số tệp nhật ký lớn, tệp cơ sở dữ liệu hoặc một cái gì đó tương tự nằm xung quanh, chờ quá trình giữ tệp phát hành tệp.

Trong Linux, việc xóa tệp chỉ đơn giản là hủy liên kết tệp. Nó thực sự bị xóa khi không có tệp xử lý nào được kết nối với tệp đó nữa. Vì vậy, nếu bạn có tệp nhật ký 2 GB mà bạn xóa bằng tay với rm, không gian đĩa sẽ không được giải phóng cho đến khi bạn khởi động lại syslog daemon (hoặc gửi HUPtín hiệu đến nó).

Thử

lsof -n | grep -i deleted

và xem nếu bạn có bất kỳ tập tin zombie bị xóa vẫn còn trôi nổi xung quanh.


Tôi đã không chạy lệnh của bạn, nhưng những gì bạn nói có vẻ như đang nổ tung - Tôi đã tự tay giết một số bản ghi bị điên, và cuối cùng, việc khởi động lại khiến không gian đĩa được tính toán lại và hiển thị chính xác.
Codecraft

Nó hoạt động với chúng tôi với các bản ghi Apache điền vào thư mục / var / log / apache /. Vì vậy, bạn có thể không phải khởi động lại toàn bộ máy chủ của mình, cũng không phải nhật ký hệ thống, chỉ là dịch vụ bạn sẽ tìm thấy trong đầu ra của lệnh trên.
Yvan

Chỉ cần có điều này bản thân mình. Chúng tôi đã có catalina tomcat6.out không bị bắt bởi logrotate, chúng tôi đã xóa nó khi nó đạt 4Gb và logrotate cố định. Vài tuần sau, chúng tôi tự hỏi tại sao 4Gb không quay trở lại. lsofLệnh đó cho thấy chúng tôi có rất nhiều tệp tomcat đang chờ xóa. Khởi động lại tomcat và đột nhiên chúng ta có hàng tấn không gian trở lại!
Nick

Cuối cùng, một câu trả lời đã làm việc cho tôi. PostgreSQL đã bị sập và để lại các kết nối mở tới 400GiB (!!!) của các tệp không được liên kết trên đĩa 1TiB. Khởi động lại Postgres đã sửa nó.
sudo
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.