Sử dụng dung lượng đĩa với du và ncdu
du (disk usage) là lệnh tiêu chuẩn trên Linux dùng để báo cáo dung lượng mà các tệp và thư mục đang sử dụng; ncdu là một giải pháp thay thế tương tác dựa trên ncurses, cho phép bạn duyệt kết quả và xóa các mục. Kết hợp với df, lệnh hiển thị dung lượng trống trên mỗi hệ thống tệp, đây là cách thông thường để tìm ra nguyên nhân gây đầy đĩa.
1Các tùy chọn du hữu ích
du -sh /var in ra một tổng dung lượng ở định dạng dễ đọc. du -h --max-depth=1 / liệt kê dung lượng của từng thư mục cấp cao nhất. -x giúp giới hạn trong một hệ thống tệp, do đó các đĩa được gắn (mounted) và /proc sẽ được bỏ qua.
Kết hợp với lệnh sort để tìm các mục lớn nhất: du -xh --max-depth=1 / | sort -h.
2ncdu
ncdu -x / quét hệ thống tệp gốc và mở một danh sách có thể duyệt được, sắp xếp theo dung lượng. Sử dụng các phím mũi tên để di chuyển, phím Enter để mở thư mục, 'd' để xóa mục đã chọn sau khi xác nhận, 'q' để thoát. ncdu thường được cài đặt từ trình quản lý gói của bản phân phối (ví dụ: apt install ncdu).
3Khi du và df không khớp nhau
Nếu df báo cáo đĩa đầy nhưng du tìm thấy ít hơn, có thể một tệp đã xóa vẫn đang được giữ bởi một tiến trình đang chạy. Dung lượng sẽ được giải phóng khi tiến trình đó đóng tệp hoặc khởi động lại.
Cách tìm nguyên nhân gây đầy đĩa
- Xem hệ thống tệp nào bị đầy:
df -h - Liệt kê các thư mục cấp cao nhất lớn nhất:
sudo du -xh --max-depth=1 / | sort -h - Đi sâu hơn một cấp vào thư mục lớn nhất và lặp lại thao tác.
- Hoặc duyệt tương tác:
sudo ncdu -x /
Lưu ý
- Không xóa các tệp bạn không nhận diện được trong
/usr,/lib,/boothoặc/var/lib. - Phím 'd' trong ncdu sẽ xóa ngay lập tức sau khi bạn xác nhận; không có thùng rác.
Bài liên quan
- df (disk free)Cách đọc kết quả đầu ra của df, lý do tại sao Use% có thể đạt 100% trước khi Avail bằng 0 đối với người dùng thông thường và cách kiểm tra inode bằng df -i.
- Inode và lỗi 'No space left on device'Inode là gì, cách xem mức sử dụng inode bằng lệnh df -i và cách tìm các thư mục chứa hàng triệu tệp nhỏ.
- Tìm các tệp tin lớn và cũ bằng findCách sử dụng find để liệt kê các tệp tin lớn hoặc cũ trên Linux, xem trước chúng một cách an toàn và chỉ xóa những gì bạn đã kiểm tra.
Nguồn
- du(1) man7.org
- ncdu(1) (Debian) manpages.debian.org
- df(1) man7.org
Ghi chú: RainServer cung cấp tính năng giám sát và dọn dẹp an toàn cho các máy chủ Linux; nó hiển thị những thay đổi sẽ xảy ra và yêu cầu xác nhận trước.
Xem xét lần cuối: