Liên hệProfile
Danh mục

Mục Lục

    Cách kiểm tra dung lượng và sửa lỗi full inode bằng lệnh du Linux

    Nguyễn Hưng

    Ngày đăng:

    17/10/2025

    Cập nhật lần cuối:

    17/10/2025

    Lượt xem:
    Chia sẻ
    Đánh giá
    Đánh giá bài viết

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    17/10/2025

    Cập nhật lần cuối:

    17/10/2025

    Mục lục

    Du Linux là một công cụ dòng lệnh mạnh mẽ trong Linux, cho phép bạn xem tổng dung lượng đĩa đã sử dụng theo cấp độ thư mục. Bên cạnh việc kiểm tra dung lượng thông thường, công cụ này còn là chìa khóa để chẩn đoán và xử lý lỗi “full inode”, một tình trạng bế tắc khi hệ thống hết chỗ để lưu trữ thông tin về các tệp (metadata). Trong bài viết này, mình sẽ hướng dẫn bạn cách dùng lệnh du Linux để kiểm tra, chẩn đoán và xử lý hiệu quả lỗi đầy inode trên hệ thống Linux.

    Những điểm chính

    • Khái niệm lệnh du Linux: Là công cụ dòng lệnh viết tắt của “Disk Usage”, dùng để ước tính và hiển thị dung lượng ổ đĩa mà các tệp và thư mục đang sử dụng.
    • Các tùy chọn lệnh du phổ biến: Cung cấp nhiều tùy chọn như h, -s, -a, -c, --max-depth, --exclude, --time--inode để tùy chỉnh kết quả hiển thị.
    • Khái niệm Inode: Là cấu trúc dữ liệu lưu trữ siêu dữ liệu về một file hoặc thư mục; hệ thống có số lượng inode hữu hạn, có thể bị đầy trước khi hết dung lượng.
    • Các bước xử lý lỗi đầy Inode: Quy trình bao gồm việc xác nhận tình trạng bằng df -i, sử dụng du –inode để tìm thư mục chiếm nhiều inode nhất, và cuối cùng dọn dẹp các file không cần thiết.
    • Cách ngăn ngừa tình trạng đầy Inode: Thiết lập các tác vụ tự động dọn dẹp (cronjob) để thường xuyên xóa các file không cần thiết như session PHP hoặc file cache cũ.
    • Câu hỏi thường gặp: Giải đáp những câu hỏi thường gặp liên quan đến lỗi full inode.

    Lệnh du Linux là gì?

    Lệnh du Linux là viết tắt của “Disk Usage” (sử dụng ổ đĩa), có nhiệm vụ là ước tính và hiển thị lượng không gian đĩa đã được sử dụng bởi các tập tin và thư mục trong hệ thống. Mục đích chính của lệnh du là giúp người dùng và quản trị viên hệ thống nhanh chóng xác định các tệp và thư mục nào đang chiếm dụng nhiều dung lượng nhất trên ổ đĩa. Mặc định, du thường hiển thị kết quả theo đơn vị kilobyte (KB) hoặc theo số lượng khối đĩa (blocks), tùy chỉnh bạn có thể điều chỉnh cách hiển thị thông tin theo ý muốn.

    Cú pháp cơ bản của lệnh du:

    du [TÙY CHỌN]... [FILE/THƯ MỤC]...

    iconLưu ý

    Trong cú pháp này, bạn có thể sử dụng nhiều tùy chọn và file, thư mục cùng lúc. Nếu bạn không cung cấp [FILE/THƯ MỤC], lệnh du sẽ mặc định hiển thị dung lượng sử dụng của thư mục hiện tại.

    Lệnh du là một công cụ dòng lệnh tiêu chuẩn trong các hệ điều hành Linux
    Lệnh du là một công cụ dòng lệnh tiêu chuẩn trong các hệ điều hành Linux

    Các tùy chọn lệnh du Linux thường dùng

    Để sử dụng lệnh du hiệu quả hơn, bạn có thể kết hợp với các tùy chọn sau:

    LệnhChức năngVí dụ
    du -hHiển thị dung lượng ở định dạng dễ đọc.du -h /var/log
    Hiển thị dung lượng các file/thư mục trong /var/log theo đơn vị KB, MB, GB thay vì block tiêu chuẩn.
    du -sChỉ hiển thị tóm tắt tổng dung lượng của một thư mục cụ thể.du -s /home/user
    Chỉ hiển thị một dòng duy nhất về tổng dung lượng của thư mục /home/user.
    du -aHiển thị dung lượng của cả file và thư mục (mặc định chỉ hiển thị thư mục).du -ah /etc
    Liệt kê dung lượng của từng file và thư mục con bên trong /etc.
    du -cHiển thị tổng dung lượng (Grand Total) ở dòng cuối cùng của đầu ra.du -ch /var/www /var/log
    Tính dung lượng của từng thư mục và in ra tổng dung lượng của cả hai ở dòng cuối cùng.
    du -d N (hoặc --max-depth=N)Giới hạn độ sâu tối đa của các thư mục con cần kiểm tra. N là số cấp thư mục.du -h -d 1 /var
    Chỉ hiển thị dung lượng của các file/thư mục con trực tiếp (cấp 1) bên trong /var.
    du -L (hoặc --dereference)Thực hiện theo các liên kết tượng trưng (Symbolic Links) và báo cáo dung lượng của file/thư mục mà liên kết trỏ tới.du -L /path/to/link
    Hiển thị dung lượng thực của đích đến, thay vì dung lượng của chính file liên kết.
    du -kHiển thị số lượng block trong các block 1024 byte (1 Kilobyte).du -k /home/user
    Hiển thị dung lượng theo đơn vị Kilobyte.
    du -mHiển thị số lượng block trong các block 1 Megabyte.du -m /home/user
    Hiển thị dung lượng theo đơn vị Megabyte.
    du –exclude=”[mẫu]”Loại trừ các file hoặc thư mục khớp với mẫu đã chỉ định khỏi kết quả tính toán.du -h --exclude="*.log" /var/log
    Tính dung lượng của /var/log nhưng bỏ qua tất cả các file có đuôi .log.
    du –threshold=SIZEChỉ hiển thị các mục có dung lượng lớn hơn (hoặc nhỏ hơn) một ngưỡng nhất định.du --threshold=1GB
    Chỉ hiển thị các mục lớn hơn 1 Gigabyte.
    du –timeHiển thị thời gian sửa đổi lần cuối của từng mục.du -ah --time /home/user
    Hiển thị dung lượng và thời gian sửa đổi lần cuối.
    du –inodeKiểm tra số lượng inode sử dụng thay vì dung lượng ổ đĩa.du -s --inodes /* | sort -rn 
    Tìm các thư mục ở gốc (/) đang chiếm dụng nhiều inode nhất, rất hữu ích khi gặp lỗi “No space left on device” do hết inode.
    du -x (hoặc --one-file-system)Giới hạn lệnh du chỉ quét trong hệ thống file hiện tại, loại trừ các phân vùng (mount) khác.du -h -x /
    Tính dung lượng của phân vùng gốc / mà không tính các mount point khác.
    du > [file.txt]Xuất kết quả của lệnh du vào một file văn bản.du -h /var > du-report.txt
    Lưu kết quả vào file du-report.txt trong thư mục hiện hành.

    Inode là gì?

    Inode (Index Node) là cấu trúc dữ liệu trong hệ thống file của Linux, lưu trữ toàn bộ siêu dữ liệu (metadata) về một file hoặc thư mục. Inode bao gồm các thành phần như:

    • Quyền sở hữu.
    • Quyền truy cập.
    • Kích thước file.
    • Thời gian tạo/sửa đổi/truy cập.
    • Con trỏ trỏ đến vị trí lưu trữ dữ liệu thực tế của file trên ổ đĩa.
    Inode (Index Node) là cấu trúc dữ liệu trong hệ thống file của Linux
    Inode (Index Node) là cấu trúc dữ liệu trong hệ thống file của Linux

    Ví dụ: Để dễ hình dung, bạn hãy tưởng tượng một thư viện khổng lồ với dung lượng ổ cứng (df -h) giống như tổng diện tích các phòng trong thư viện, các inode giống như số lượng thẻ trong tủ thẻ mục lục. Mỗi chiếc thẻ (Inode) chứa thông tin về một cuốn sách (Một file), như: Cuốn sách đó tên gì, thuộc về ai và nằm ở kệ nào trên giá sách.

    Mỗi khi bạn tạo một file mới, hệ thống sẽ sử dụng một inode. Số lượng Inode là có hạn và được quyết định ngay khi bạn định dạng (format) ổ đĩa. Do đó, nếu bạn tạo ra nhiều file rất nhỏ, bạn có thể đã sử dụng hết toàn bộ Inode trước khi sử dụng hết dung lượng lưu trữ, dẫn đến lỗi full Inode.

    Các nguyên nhân phổ biến gây đầy Inode

    Dưới đây là các nguyên nhân phổ biến nhất dẫn đến tình trạng hết Inode:

    • File session PHP: Các website PHP không được cấu hình dọn dẹp đúng cách có thể tạo ra hàng triệu file session cũ.
    • Hàng đợi email: Các server gửi mail bị lỗi hoặc bị spam có thể làm tồn đọng một lượng lớn email trong hàng đợi.
    • File cache: Các ứng dụng web, cache plugin (Đặc biệt trên WordPress) có thể tạo ra nhiều file cache nhỏ.
    • File tạm: Là các thư mục /tmp hoặc các thư mục tạm của ứng dụng không được dọn dẹp định kỳ.
    Các nguyên nhân phổ biến gây đầy Inode
    Các nguyên nhân phổ biến gây đầy Inode

    Bước 1: Xác nhận tình trạng đầy Inode

    Thay vì dùng df -h, bạn hãy sử dụng lệnh df -i để kiểm tra việc sử dụng inode.

    df -i

    Output ví dụ:

    Filesystem       Inodes   IUsed   IFree IUse% Mounted on
    /dev/sda1       1310720 1310720       0  100% /

    Nếu bạn thấy cột IUse% (Inode Use) hiển thị 100% trong khi df -h vẫn báo còn dung lượng trống, thì hệ thống của bạn đang bị đầy Inode.

    Bước 2: Tìm thư mục chứa nhiều file nhất

    Sau khi biết vấn đề nằm ở inode, bạn cần tìm ra vị trí thư mục chứa các file nhỏ đó.

    Cách 1: Dùng lệnh du

    Đây là cách đơn giản và nhanh chóng nhất, bạn sử dụng lệnh du với tùy chọn --inode để liệt kê số lượng inode đang được sử dụng ở thư mục hiện tại:

    # Liệt kê số inode sử dụng của các thư mục trong thư mục hiện tại
    sudo du --inode . -d 1 | sort -rn
    Dùng lệnh du
    Dùng lệnh du

    Hoặc bạn sử dụng lệnh sau để kiểm tra từ thư mục gốc và tìm ra 10 thư mục sử dụng nhiều Inode nhất:

    sudo du -s --inode /* | sort -rn | head -n 10
    Tìm 10 thư mục sử dụng nhiều Inode nhất
    Tìm 10 thư mục sử dụng nhiều Inode nhất

    Trong đó:

    • du --inode: Hiển thị số lượng inode sử dụng.
    • -s: Chỉ hiển thị tổng số cho mỗi đối số (Thư mục cấp 1).
    • sort -rn: Sắp xếp kết quả theo số lượng giảm dần.

    Lệnh du thường cho kết quả nhanh và dễ nhớ hơn. Sau khi tìm ra thư mục cấp 1 chiếm nhiều inode nhất (Ví dụ /var), bạn có thể lặp lại lệnh (sudo du -s --inode /var/* | sort -rn | head -n 10) để tìm chính xác thư mục con nào bên trong thư mục lớn này chứa nhiều file nhỏ nhất.

    Cách 2: Dùng vòng lặp for

    Ngoài lệnh du Linux, bạn cũng có thể sử dụng một vòng lặp for để đếm số lượng file trong các thư mục cấp 1:

    for i in /*; do echo $i; find $i | wc -l; done

    Lệnh trên sẽ duyệt qua các thư mục như /home, /var, /etc,… và đếm tổng số file bên trong mỗi thư mục. Bạn sẽ lặp lại quá trình này vào sâu hơn trong các thư mục con để khoanh vùng chính xác.

    Cách 3: Dùng lệnh find

    Để đẩy nhanh quá trình kiểm tra, bạn có thể sử dụng một dòng lệnh kết hợp find, sortuniq để tìm ra 10 thư mục chứa nhiều file nhất trên toàn hệ thống.

    find / -xdev -printf '%h\n' | sort | uniq -c | sort -rn | head -n 10
    
    Dùng lệnh find
    Dùng lệnh find

    Trong đó:

    • find / -xdev: Tìm kiếm từ thư mục gốc / nhưng không vượt qua các hệ thống file khác.
    • -printf '%h\n': In ra đường dẫn thư mục của mỗi file.
    • sort | uniq -c | sort -rn | head -n 10: Đếm số lần xuất hiện của mỗi thư mục, sau đó sắp xếp theo thứ tự giảm dần và lấy 10 kết quả đầu tiên.

    Bước 3: Dọn dẹp các file không cần thiết

    Sau khi đã xác định được thư mục sử dụng nhiều Inode nhất, bước tiếp theo là xóa các file không cần thiết.

    iconLưu ý

    Bạn cần kiểm tra cẩn thận trước khi xóa file ở bước này vì việc xóa nhầm file có thể ảnh hưởng trực tiếp hệ thống.

    Ví dụ: Xóa file session PHP

    • Xóa các file session PHP cũ trong thư mục /var/lib/php/session:
    # Lệnh xóa các file session cũ hơn 10 ngày
    find /var/lib/php/session -type f -mtime +10 -delete
    • Xóa các file cache của một website WordPress:
    # Thay a_website_com bằng tên thư mục website của bạn
    find /home/a_website_com/public_html/wp-content/cache -type f -delete
    • Xóa hàng đợi email của Postfix:
    # Lệnh này sẽ xóa toàn bộ hàng đợi, chỉ dùng khi bạn chắc chắn
    postsuper -d ALL

    Kinh nghiệm:

    Trước khi thực thi lệnh xóa, bạn có thể chạy lệnh find không có -delete để xem danh sách các file sẽ bị ảnh hưởng.
    # Chỉ liệt kê các file sẽ bị xóa
    find /var/lib/php/session -type f -mtime +10

    Cách ngăn ngừa tình trạng đầy Inode

    Để tránh tình trạng đầy Inode trong tương lai, bạn nên thiết lập các tác vụ tự động dọn dẹp bằng cronjob. Bạn hãy tạo một cronjob để tự động xóa file session cũ:

    • Bước 1: Đầu tiên, bạn mở crontab bằng lệnh sau:
    crontab -e
    Mở crontab
    Mở crontab
    • Bước 2: Thêm dòng sau để chạy lệnh dọn dẹp vào 4 giờ sáng mỗi ngày:
    0 4 * * * /usr/bin/find /var/lib/php/session -type f -mtime +10 -delete > /dev/null 2>&1

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

    Biểu hiện của tình trạng full inode là gì?

    Khi full inode, bạn không thể tạo thêm file hoặc thư mục mới, website có thể báo lỗi, không gửi/nhận được email, upload file thất bại, hệ thống hoạt động chậm hoặc báo lỗi về file.

    Inode khác gì với dung lượng ổ cứng?

    Dung lượng ổ đĩa cho biết tổng kích thước dữ liệu có thể lưu trữ, còn số inode cho biết tổng số file hoặc thư mục có thể tạo. Ổ cứng còn trống dung lượng nhưng hết inode vẫn không thể tạo file mới và ngược lại.

    Có cách nào tăng số lượng inode trên hệ thống không?

    Số inode chỉ có thể tăng khi bạn tạo lại phân vùng (Format lại ổ đĩa) và cấu hình lại tham số về số lượng inode. Nếu chưa thể format, bạn chỉ có thể xóa các file không cần thiết để khắc phục tạm thời.

    Kết luận

    Như vậy, mình đã hướng dẫn chi tiết cách dùng lệnh du Linux để kiểm tra dung lượng thư mục và file trong bài viết này. Đồng thời, bạn cũng nắm được các bước để kiểm tra và xử lý sự cố lỗi full inode nhằm duy trì hoạt động bình thường của hệ thống. Để nâng cao kiến thức về bảo mật và quản trị máy chủ, bạn có thể tham khảo các bài viết dưới đây của mình

    Đánh giá bài viết
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách xóa dữ liệu trên hosting cực nhanh và đơn giản
    Cách xóa dữ liệu trên hosting cực nhanh và đơn giản

    Khi dung lượng hosting bị đầy hoặc tốc độ website giảm sút, việc xóa dữ liệu là một giải pháp cần thiết. Bài viết này mình sẽ cung cấp hướng dẫn chi tiết, từng bước cách xóa dữ liệu trên hosting an toàn và hiệu quả, giúp bạn giải phóng không gian lưu trữ và…

    17/10/2025

    Hướng dẫn chọn Hosting cho WordPress tốt nhất: Tối ưu tốc độ và độ ổn định
    Hướng dẫn chọn Hosting cho WordPress tốt nhất: Tối ưu tốc độ và độ ổn định

    Chọn hosting cho WordPress là quá trình lựa chọn dịch vụ lưu trữ web phù hợp để cài đặt và vận hành một website WordPress. Tuy nhiên, nhiều người khi mới bắt đầu thường gặp phải tình trạng website chậm, hay gặp lỗi và không biết nên lựa loại hosting nào phù hợp cho nền…

    08/10/2025

    VPS cấu hình khủng là gì? Lợi ích, cách chọn và trường hợp sử dụng
    VPS cấu hình khủng là gì? Lợi ích, cách chọn và trường hợp sử dụng

    VPS cấu hình khủng là giải pháp máy chủ ảo mạnh mẽ, được thiết kế để đáp ứng các nhu cầu về hiệu suất và ổn định cao cho website, ứng dụng hay các tác vụ đòi hỏi tài nguyên lớn. Trong bài viết này, mình sẽ cùng bạn khám phá về định nghĩa, các…

    06/10/2025

    Hướng dẫn sao chép file lên VPS Windows nhanh chóng, dễ dàng bằng Remote Desktop
    Hướng dẫn sao chép file lên VPS Windows nhanh chóng, dễ dàng bằng Remote Desktop

    Việc chuyển file từ máy tính cá nhân lên máy chủ ảo (VPS) là một trong những thao tác cần thiết với những ai đang quản trị website, ứng dụng hay lưu trữ dữ liệu từ xa. Trong bài viết này, mình sẽ hướng dẫn bạn chi tiết 2 phương pháp sao chép file lên…

    06/10/2025