Nhập từ khóa muốn tìm kiếm gì?

Du trên Linux: cách đo dung lượng file và thư mục hiệu quả

Vừa xong

Hướng dẫn cách đo dung lượng file và thư mục trên Linux bằng du, df, ncdu và lệnh liên quan, kèm mẹo dùng thực tế để tối ưu ổ đĩa.

Du trên Linux: cách đo dung lượng file và thư mục hiệu quả

Trên Linux, “ổ đĩa đầy” hiếm khi đến bất ngờ. Nó thường bắt đầu bằng vài thư mục log phình to, một cache ứng dụng bị bỏ quên, hoặc các bản backup cũ chiếm chỗ âm thầm. Khi đó, biết cách đo dung lượng file và thư mục nhanh, đúng và đủ sâu sẽ giúp bạn khoanh vùng vấn đề chỉ trong vài phút.

Trong thực tế quản trị hệ thống, câu hỏi không chỉ là “còn bao nhiêu dung lượng trống”, mà là “thư mục nào đang ăn chỗ”, “file nào lớn bất thường”, và “xóa gì thì an toàn”. Bài viết này đi từ lệnh cơ bản như dudf đến cách đọc kết quả, chọn tham số phù hợp, và xử lý tình huống trên máy cá nhân lẫn server.

Khi nào cần đo dung lượng trên Linux

Trên Linux, đo dung lượng không phải chỉ để dọn ổ cứng. Nó còn là bước kiểm tra nền trước khi triển khai ứng dụng, sao lưu dữ liệu, chạy container, hoặc xử lý sự cố hệ thống. Một máy chủ web có thể vẫn còn vài GB trống, nhưng nếu phân vùng /var đầy vì log tăng liên tục, dịch vụ vẫn có thể lỗi ghi file. Tương tự, một thư mục dự án có thể chỉ chứa vài nghìn file, nhưng các thư mục ẩn như .git, cache build, hoặc snapshot cũ lại là phần chiếm chỗ chính.

dfdu thường được dùng cùng nhau vì chúng trả lời hai câu hỏi khác nhau. df cho biết dung lượng đã dùng trên toàn bộ filesystem hoặc phân vùng. du cho biết một file, thư mục, hoặc cây thư mục đang tiêu thụ bao nhiêu không gian trên đĩa. Nếu chỉ nhìn df, bạn biết ổ gần đầy nhưng chưa biết nguyên nhân. Nếu chỉ nhìn du, bạn có thể tìm ra thư mục lớn nhưng lại bỏ sót trường hợp file đã bị xóa khỏi thư mục, vẫn còn bị một tiến trình giữ mở nên dung lượng chưa được giải phóng. Đó là lý do người dùng Linux có kinh nghiệm luôn kiểm tra cả hai phía.

Minh họa dung lượng file và thư mục trên Linux

Về mặt vận hành, đo dung lượng còn liên quan đến chiến lược lưu trữ. Một thư mục chứa nhiều file nhỏ có thể không lớn về tổng dung lượng, nhưng lại gây tốn inode. Ngược lại, một file nén log duy nhất có thể chiếm ít chỗ hơn nhiều file rời rạc, nhưng lại khó truy vết nếu không đặt tên và vòng đời rõ ràng. Vì vậy, khi đọc kết quả đo dung lượng, hãy nhìn cả tổng byte lẫn cấu trúc dữ liệu bên trong. Cách này đặc biệt hữu ích trên máy chủ ảo, NAS gia đình, hoặc máy tính dùng cho xử lý media, nơi dữ liệu thay đổi nhanh và nhiều lớp cache có thể làm bạn hiểu sai hiện trạng.

Dùng du để đo dung lượng file và thư mục

Lệnh cốt lõi để đo dung lượng theo cây thư mục là du, viết tắt của “disk usage”. Cú pháp cơ bản rất ngắn: du <đường_dẫn>. Tuy nhiên, nếu dùng mặc định, kết quả thường hiển thị theo block của hệ thống, nên khó đọc. Trong thực tế, bạn gần như luôn muốn kết hợp với -h để chuyển sang định dạng dễ nhìn như KB, MB, GB. Ví dụ, du -h ~/Downloads sẽ cho bạn biết từng nhánh con đang chiếm bao nhiêu dung lượng. Nếu thêm -s, lệnh chỉ trả về tổng của thư mục thay vì liệt kê toàn bộ cây.

Điểm mạnh của du nằm ở chỗ nó đọc theo cấu trúc thư mục, nên cực kỳ phù hợp khi cần tìm “thư mục nào to nhất”. Nhưng cơ chế của nó cũng tạo ra một giới hạn quan trọng. du đi xuống từng thư mục và cộng dung lượng các file mà nó thấy trong cây đó. Điều này có nghĩa là nếu bạn chỉ muốn kiểm tra một file đơn lẻ, du vẫn dùng được, nhưng nó không phải công cụ nhanh nhất cho mọi tình huống. Với một file, bạn thường muốn ls -lh để xem kích thước hiển thị của riêng file đó. Với một thư mục, du mới phát huy đúng vai trò. Trade-off ở đây là tốc độ và độ chi tiết. Càng quét sâu, bạn càng có bức tranh rõ, nhưng cũng tốn thời gian hơn trên cây dữ liệu lớn.

Một vài biến thể của du rất đáng nhớ. du -sh /path/to/dir cho tổng dung lượng dễ đọc. du -h --max-depth=1 /var cho biết từng thư mục cấp một dưới /var đang tốn bao nhiêu chỗ, rất hữu ích khi điều tra log, cache hoặc spool. du -ah /path/to/dir còn liệt kê cả file lẫn thư mục, phù hợp khi muốn tìm file lớn bất thường trong một khu vực cụ thể. Trong thao tác thực tế, tôi thường bắt đầu từ cấp trên cùng bằng --max-depth=1, sau đó đi sâu vào nhánh nghi ngờ. Cách này tránh việc bị “ngập” trong hàng nghìn dòng output không cần thiết.

Với những thư mục có quyền truy cập hạn chế hoặc chứa file ẩn, du vẫn hoạt động nếu bạn có đủ quyền đọc. Nếu không, một số file sẽ bị bỏ qua hoặc báo lỗi. Đây là chỗ nhiều người nhầm rằng dung lượng “không khớp”. Thực ra, vấn đề thường nằm ở quyền và ở cách filesystem cấp phát block, chứ không phải du sai. Trên môi trường doanh nghiệp hoặc server chia sẻ, hãy luôn chạy với quyền phù hợp và kiểm tra thông báo lỗi đi kèm output.

Phân biệt dudf để đọc số liệu đúng

Một lỗi rất phổ biến là thấy df báo ổ đầy nhưng cộng các thư mục bằng du lại không ra đúng con số tương ứng. Điều này không hiếm và cũng không có nghĩa là hệ thống sai. df nhìn filesystem ở mức phân vùng. Nó phản ánh không gian đã cấp phát, kể cả các khối dữ liệu hiện vẫn còn bị tiến trình giữ mở. du thì quét những gì nằm trong cây thư mục hiện tại. Nếu một file bị xóa nhưng một ứng dụng vẫn giữ handle mở, df vẫn tính dung lượng đó là đã dùng, còn du sẽ không còn nhìn thấy file trong cây thư mục nữa.

Chính sự khác nhau về cơ chế này khiến dfdu bổ sung cho nhau thay vì thay thế nhau. Khi xử lý sự cố đầy ổ, tôi thường bắt đầu bằng df -h để xác định phân vùng nào bị ảnh hưởng. Sau đó dùng du -sh ở các thư mục cấp cao như /var, /home, /opt, /srv để khoanh vùng. Nếu số liệu vẫn lệch lớn, bước tiếp theo là kiểm tra file bị tiến trình giữ mở bằng lsof +L1 hoặc lsof /path trên các hệ thống có cài lsof. Đây là nguyên lý quan trọng của Linux debugging: df cho bạn bức tranh filesystem, còn du cho bạn bức tranh thư mục. Khi hai bức tranh không khớp, nguyên nhân thường nằm ở trạng thái sử dụng, không phải ở kích thước logic của file.

Về mặt thực hành, đừng chỉ dựa vào một con số “GB trống”. Trên server chạy ứng dụng, cái cần theo dõi là điểm nghẽn tăng trưởng. Ví dụ, nếu thư mục log tăng đều mỗi ngày, bạn có thể dự đoán thời điểm chạm ngưỡng và chủ động rotate log trước khi dịch vụ gián đoạn. Nếu thư mục build tăng theo phiên bản deploy, bạn cần chính sách dọn artifact cũ. Trong các bài phân tích của Love VN Food về thói quen vận hành hệ thống, điểm chung luôn là nhìn xu hướng trước khi nhìn sự cố. Cách đọc dfdu cũng vậy.

Dùng ncdu và công cụ tương tác để tìm thứ chiếm chỗ nhanh hơn

Nếu du là công cụ chuẩn để đo, thì ncdu là cách làm việc nhanh hơn khi bạn cần duyệt thủ công. ncdu là viết tắt của “NCurses Disk Usage”, một giao diện tương tác trên terminal cho phép bạn mở cây thư mục, sắp xếp theo kích thước, và đi sâu vào nhánh lớn chỉ bằng phím mũi tên. Với người phải dọn máy cá nhân, dọn home directory, hoặc xử lý server có cấu trúc thư mục nhiều tầng, ncdu tiết kiệm thời gian đáng kể.

Cơ chế của ncdu khá hợp lý. Nó quét dữ liệu trước, tạo chỉ mục nội bộ, rồi cho phép bạn di chuyển qua lại trong giao diện text. Điều này giúp bạn không phải chạy lại lệnh nhiều lần như khi dùng du rồi lọc bằng sort. Đổi lại, ncdu không phải lúc nào cũng phù hợp trên môi trường tối giản hoặc container nhẹ, nơi không muốn cài thêm package. Trên server production, nhiều đội cũng hạn chế dùng công cụ tương tác nếu chỉ cần kiểm tra nhanh qua SSH. Khi đó, du vẫn là lựa chọn an toàn hơn vì có sẵn trên hầu hết bản phân phối.

Bên cạnh ncdu, du kết hợp với sorthead cũng là một cách rất thực dụng. Ví dụ, bạn có thể dùng du -ah /var | sort -hr | head -n 20 để tìm 20 mục lớn nhất. Cách này không đẹp bằng ncdu, nhưng cực kỳ hiệu quả khi cần chạy script hoặc chẩn đoán từ xa. Điểm cần lưu ý là sort -h hiểu định dạng dung lượng kiểu human-readable, còn sort -r đảo thứ tự từ lớn xuống nhỏ. Nếu thư mục quá lớn, pipeline này có thể tốn thời gian và I/O, nên chỉ nên chạy ở khu vực nghi ngờ thay vì quét cả filesystem.

Trong thực tế, tôi thường chia cách dùng theo ngữ cảnh. Máy cá nhân hoặc server thử nghiệm thì ncdu rất tiện. Hệ thống production, môi trường container, hoặc tình huống cứu hộ từ rescue shell thì dudf an toàn hơn. Đó là trade-off giữa tốc độ tương tác và khả năng triển khai rộng. Một công cụ tốt không chỉ là công cụ cho kết quả đúng, mà còn là công cụ phù hợp với môi trường vận hành.

Mẹo đọc kết quả và tránh hiểu sai dung lượng

Đo dung lượng trên Linux không chỉ là chạy lệnh, mà còn là đọc đúng kết quả. Một file hiển thị “4.0K” trong du -h không có nghĩa nó thực sự chỉ chiếm đúng 4 KB về mặt vật lý ở mọi filesystem. Hệ thống file có thể cấp phát theo block, nên file rất nhỏ vẫn chiếm một block tối thiểu. Tương tự, file sparse như image đĩa ảo hoặc database snapshot có thể hiển thị kích thước logic rất lớn nhưng dung lượng thực chiếm trên đĩa lại nhỏ hơn nhiều. Nếu gặp kiểu file này, hãy phân biệt giữa “kích thước logic” và “kích thước thật trên disk”.

Một điểm khác cần chú ý là liên kết cứng, liên kết mềm và thư mục mount. du theo mặc định có thể làm bạn hiểu nhầm nếu dữ liệu nằm qua nhiều mount point hoặc nếu file được liên kết từ nhiều nơi. Trên các hệ thống có nhiều volume, hãy xác định rõ bạn đang đo trong phạm vi nào. Đừng quên rằng một thư mục tưởng như nằm trên cùng một cây có thể thực ra đã chuyển sang phân vùng khác do mount chồng lên. Khi đó, du chỉ phản ánh đúng phạm vi nó quét, còn df mới cho bạn biết trạng thái của từng filesystem.

Một mẹo thực chiến là luôn bắt đầu bằng câu hỏi “mình đang cần đo cái gì”. Nếu cần biết thư mục nào trong /home đang chiếm chỗ, dùng du -h --max-depth=1 /home. Nếu cần biết phân vùng nào đầy, dùng df -h. Nếu cần tìm file lớn nhất trong một khu vực, dùng du -ah rồi lọc bằng sort. Nếu cần tương tác trực quan, dùng ncdu. Khi câu hỏi rõ, công cụ sẽ tự chọn đúng.

Đội ngũ biên tập Love VN Food nhận thấy một thói quen rất đáng giá trên Linux là đo theo lớp. Tức là không lao ngay vào file đơn lẻ, mà đi từ phân vùng, đến thư mục cấp cao, rồi mới xuống từng nhánh. Cách này phản ánh đúng cách filesystem tăng trưởng trong thực tế, nhất là khi log, cache và dữ liệu người dùng thường cùng phình lên theo thời gian.

Quy trình xử lý khi ổ đĩa bắt đầu đầy

Khi nhận thấy dung lượng giảm nhanh, quy trình hiệu quả nhất không phải là xóa ngẫu nhiên mà là xác định nguyên nhân theo thứ tự. Trước hết, dùng df -h để xem phân vùng nào đang căng. Sau đó, khoanh bằng du -h --max-depth=1 ở thư mục cấp cao tương ứng. Tiếp theo, đi sâu vào nhánh lớn nhất bằng lại du hoặc mở bằng ncdu. Chỉ sau khi xác định đúng nguồn, mới tính chuyện dọn dẹp.

Ở bước dọn dẹp, hãy ưu tiên các mục có vòng đời rõ ràng. Log cũ, cache build, package cache, file tạm, backup lỗi thời, và artifact triển khai cũ thường là ứng viên an toàn hơn so với dữ liệu người dùng hoặc file cấu hình hệ thống. Tuy nhiên, không phải thứ gì lớn cũng nên xóa. Ví dụ, một cơ sở dữ liệu hoặc kho media có thể lớn vì nó đang chứa dữ liệu thật sự có giá trị. Vì vậy, dọn dung lượng trên Linux đòi hỏi nguyên tắc quản trị dữ liệu, không chỉ kỹ năng dùng lệnh.

Nếu làm việc thường xuyên với Linux, bạn nên biến các lệnh đo dung lượng thành phản xạ. df để kiểm tra trạng thái toàn cục. du để truy ngược nguyên nhân. ncdu để điều hướng nhanh khi có quyền thao tác trực tiếp. Khi kết hợp đúng, bạn sẽ không còn xử lý “ổ đầy” bằng cảm tính, mà bằng một quy trình kiểm tra có thể lặp lại. Đây là nền tảng rất thực tế cho bất kỳ ai quản lý máy Linux, từ laptop cá nhân đến server vận hành dịch vụ.

Câu hỏi thường gặp

dudf khác nhau thế nào?

df đo theo filesystem hoặc phân vùng, còn du đo theo cây thư mục và file nhìn thấy trong đường dẫn bạn chỉ định. Khi ổ đầy nhưng du không tìm ra nguyên nhân, hãy kiểm tra thêm file bị tiến trình giữ mở.

Làm sao xem nhanh thư mục nào lớn nhất?

Cách đơn giản là dùng du -h --max-depth=1 /đường_dẫn. Nếu muốn thao tác trực quan hơn, ncdu là lựa chọn rất tiện vì cho phép duyệt thư mục ngay trong terminal.

du -sh dùng khi nào?

du -sh phù hợp khi bạn chỉ cần tổng dung lượng của một thư mục, không cần danh sách con. Đây là dạng dùng rất phổ biến để kiểm tra nhanh trước khi đi sâu.

Vì sao dudf không khớp nhau?

Nguyên nhân thường là file đã bị xóa nhưng vẫn còn tiến trình giữ mở, hoặc có sự khác nhau giữa dung lượng logic và dung lượng thực trên disk. Cũng có thể do mount point, sparse file, hoặc block allocation của filesystem.

Có nên dùng ncdu trên server production không?

Có, nhưng nên cân nhắc ngữ cảnh. Nếu cần thao tác nhanh qua SSH, ncdu rất tiện. Nếu môi trường hạn chế cài thêm gói hoặc yêu cầu tự động hóa, du vẫn là lựa chọn an toàn hơn.

Tóm lại, đo dung lượng trên Linux hiệu quả là biết kết hợp đúng công cụ cho đúng câu hỏi. df cho bức tranh phân vùng, du cho bức tranh thư mục, và ncdu giúp bạn đi nhanh hơn khi cần Khám phá thủ công. Khi hiểu cơ chế này, việc xử lý ổ đầy sẽ bớt cảm tính và chính xác hơn nhiều.

Khám phá

Cách dùng lệnh du trong Linux để xem dung lượng thư mục

Cách giải phóng dung lượng ổ cứng trên Windows hiệu quả

Digital branding là gì? Cách xây dựng thương hiệu số hiệu quả

Tận dụng AI tạo nội dung marketing: 5 cách hiệu quả cho năm 2026

Cách quản lý và xóa cookie trên Google Chrome hiệu quả

Viết bình luận...

Bình luận

0

Bài Viết Liên Quan

Du là gì? Tìm hiểu lệnh kiểm tra dung lượng trong Unix

Du là gì? Tìm hiểu lệnh kiểm tra dung lượng trong Unix

Tìm hiểu lệnh du trong Unix: cách xem dung lượng thư mục, đọc kết quả đúng ngữ cảnh và áp dụng thực tế khi dọn dẹp ổ đĩa.
T
Trần Minh Phương AnhAug 28, 2026
Du trên Linux: cách đo dung lượng file và thư mục hiệu quả

Du trên Linux: cách đo dung lượng file và thư mục hiệu quả

Hướng dẫn cách đo dung lượng file và thư mục trên Linux bằng du, df, ncdu và lệnh liên quan, kèm mẹo dùng thực tế để tối ưu ổ đĩa.
T
Trần Minh Phương AnhAug 28, 2026
Cách dùng lệnh du trong Linux để xem dung lượng thư mục

Cách dùng lệnh du trong Linux để xem dung lượng thư mục

Hướng dẫn chi tiết cách dùng lệnh kiểm tra dung lượng thư mục trong hệ điều hành Linux. Khám phá cơ chế phân bổ tài nguyên và tối ưu không gian lưu trữ năm 2026.
T
Trần Minh Phương AnhAug 28, 2026
Mẹo dùng ứng dụng WhatsApp Desktop phiên bản 2026

Mẹo dùng ứng dụng WhatsApp Desktop phiên bản 2026

Hướng dẫn mẹo dùng WhatsApp Desktop phiên bản 2026: đồng bộ tin nhắn, bảo mật, tối ưu đa thiết bị và thao tác nhanh trên máy tính.
T
Trần Minh Phương AnhAug 27, 2026
Hướng dẫn cài Yahoo! Japan trên máy tính nhanh gọn

Hướng dẫn cài Yahoo! Japan trên máy tính nhanh gọn

Cách cài Yahoo! Japan trên máy tính bằng trình duyệt, tạo lối tắt và đặt trang chủ, kèm xử lý lỗi thường gặp trên Windows và macOS.
T
Trần Minh Phương AnhAug 26, 2026
Cách đặt Yahoo! Japan làm trang chủ trên trình duyệt

Cách đặt Yahoo! Japan làm trang chủ trên trình duyệt

Hướng dẫn cách đặt Yahoo! Japan làm trang chủ trên trình duyệt, kèm lưu ý cho Chrome, Edge, Safari và mẹo xử lý khi bị chặn cài đặt.
T
Trần Minh Phương AnhAug 26, 2026
Hướng dẫn chi tiết cách tải video lên YouTube bằng Android

Hướng dẫn chi tiết cách tải video lên YouTube bằng Android

Cách tải video lên YouTube bằng Android năm 2026, từ ứng dụng YouTube, YouTube Studio đến kiểm tra bản quyền và tối ưu trước khi đăng.
T
Trần Minh Phương AnhAug 26, 2026
Cách đăng ký gói YouTube Premium sinh viên tiết kiệm 2026

Cách đăng ký gói YouTube Premium sinh viên tiết kiệm 2026

Hướng dẫn cách đăng ký gói YouTube Premium sinh viên 2026, điều kiện xác minh, quốc gia hỗ trợ và cách chọn gói tiết kiệm nhất.
T
Trần Minh Phương AnhAug 26, 2026