Khi lệnh df -h truyền thống không còn đủ dùng
Đang ngủ ngon mà nhận quả alert “Disk space critical” lúc 3 giờ sáng thì đúng là ác mộng với bất kỳ Sysadmin nào. Hồi mới vào nghề, mình thường nhảy vào gõ ngay df -h. Lệnh này báo phân vùng nào đầy rất nhanh, nhưng lại “im hơi lặng tiếng” khi bạn muốn biết chính xác file nào đang chiếm dụng hàng chục GB dung lượng.
Tiếp theo, mình lại loay hoay với du -sh * | sort -h. Cách này chạy được nhưng rất chậm. Mỗi lần muốn đào sâu vào thư mục con, bạn lại phải gõ lại lệnh từ đầu, cực kỳ mất thời gian. Sau nửa năm quản lý dàn VPS Production, mình bỏ hẳn thói quen đó. Thay vào đó, mình dùng bộ đôi ncdu và duf. Hai công cụ này cực nhẹ nhưng giải quyết vấn đề cực kỳ trực quan.
Cài đặt ncdu và duf trong 30 giây
Cả hai đều có sẵn trên kho ứng dụng mặc định của Ubuntu từ bản 20.04. Mình luôn cài sẵn bộ đôi này cùng với htop ngay khi khởi tạo server mới.
sudo apt update
sudo apt install ncdu duf -y
Nếu bạn dùng bản Ubuntu cũ hơn hoặc muốn trải nghiệm bản duf mới nhất viết bằng ngôn ngữ Go, có thể tải file .deb từ GitHub. Tuy nhiên, bản trên repo chính thức thường đã quá đủ dùng cho các tác vụ dọn dẹp hàng ngày.
duf – Phiên bản “tiến hóa” của lệnh df
Lệnh df -h trả kết quả rất thô và khó quan sát nếu server của bạn mount quá nhiều phân vùng. duf (Disk Usage/Free Utility) khắc phục điều này bằng giao diện bảng có màu sắc, biểu đồ thanh (bar chart) và khả năng tự động phân loại thông minh.
Sử dụng cơ bản
Gõ duy nhất một lệnh ngắn gọn:
duf
Kết quả hiện ra được chia rõ thành: thiết bị lưu trữ (local devices), hệ thống file đặc biệt và các phân vùng mạng. Bạn chỉ cần liếc qua cột Usage, chỗ nào hiện màu đỏ nghĩa là đang ở mức báo động.
Mẹo lọc dữ liệu
Tính năng mình thích nhất ở duf là khả năng ẩn bớt các phân vùng “rác” (như loop của snap) để tập trung vào ổ cứng thật:
duf --only local
Hoặc nếu bạn gặp tình trạng ổ cứng vẫn trống dung lượng nhưng không thể tạo file (lỗi Inodes), hãy kiểm tra ngay bằng:
duf --inodes
ncdu – “Kính lúp” soi file dung lượng lớn
Nếu duf giúp bạn biết ngôi nhà nào đầy, thì ncdu (NCurses Disk Usage) cho phép bạn vào tận nơi để xem cái tủ nào đang chứa rác. Đây là công cụ đắc lực nhất để dọn dẹp server mà không cần nhớ nhiều câu lệnh phức tạp.
Cách quét hiệu quả
Để quét thư mục hiện tại, bạn dùng lệnh ncdu. Tuy nhiên, khi quét từ thư mục gốc /, hãy dùng thêm flag -x. Flag này giúp ncdu không quét sang các ổ đĩa mạng hoặc phân vùng mount ngoài, giúp tốc độ nhanh hơn gấp 2-3 lần.
sudo ncdu -x /
Ví dụ thực tế: Mình từng quét 100GB dữ liệu chỉ mất chưa đầy 10 giây để tìm ra một file log Nginx bị phình lên tận 45GB.
Các phím tắt cần nhớ
Giao diện của ncdu cực kỳ dễ dùng bằng phím mũi tên:
- Lên/Xuống: Di chuyển giữa các file/thư mục.
- Phải hoặc Enter: Đi sâu vào bên trong thư mục.
- Trái: Quay lại thư mục cha.
- Phím s: Sắp xếp theo dung lượng (mặc định).
- Phím d: Xóa trực tiếp file đang chọn. Đừng lo, nó sẽ hỏi lại để bạn xác nhận.
Kinh nghiệm thực tế: Những nơi thường xuyên “ngốn” ổ đĩa nhất
Qua nhiều lần xử lý sự cố, mình rút ra 3 vị trí bạn nên dùng ncdu để kiểm tra đầu tiên:
1. Log hệ thống (Journald)
Thư mục /var/log luôn là nghi can số một. Đặc biệt là journald có thể chiếm nhiều GB nếu không giới hạn. Hãy thử dọn sạch log cũ hơn 7 ngày bằng lệnh:
sudo journalctl --vacuum-time=7d
2. Docker Resources
Nếu server chạy Docker, thư mục /var/lib/docker sẽ phình to chóng mặt do các image cũ hoặc container rác. Lưu ý: Đừng xóa tay các file trong này. Thay vào đó, hãy quất ngay lệnh:
docker system prune -a --volumes
3. Cache của Apt
Thư mục /var/cache/apt/archives chứa các file cài đặt .deb cũ. Bạn có thể giải phóng vài trăm MB đến cả GB chỉ với:
sudo apt-get clean
Quy trình kiểm tra hàng tuần
Đừng đợi đến khi hệ thống sập mới đi dọn dẹp. Mình thường dành 2 phút mỗi cuối tuần để check nhanh:
- Gõ
dufxem tổng quan xem có phân vùng nào vượt 80% không. - Dùng
ncduđể truy đuổi các file log hoặc bản backup cũ. - Xóa những thứ chắc chắn là rác bằng phím
d.
Quản lý ổ đĩa Ubuntu sẽ cực kỳ nhàn nhã nếu bạn có công cụ đúng trong tay. Hãy cài thử ncdu và duf ngay hôm nay, mình tin bạn sẽ không bao giờ muốn quay lại thời kỳ gõ lệnh du -sh thủ công nữa đâu!

