Bạn đã bao giờ rơi vào tình huống dở khóc dở cười khi hệ thống bỗng dưng "đình công" chỉ vì ổ cứng bị đầy đột ngột chưa nhỉ? Với tư cách là một Senior System Admin, mình đã từng phải xử lý những sự cố khẩn cấp trên các VPS chạy production, nơi mà việc kiểm tra dung lượng trống ngay lập tức là yếu tố sống còn để duy trì dịch vụ. Để giải quyết vấn đề này một cách nhanh chóng, chúng ta cần đến một trợ thủ đắc lực. df là một lệnh cực kỳ quan trọng trong thế giới Linux giúp bạn kiểm tra dung lượng lưu trữ của hệ thống một cách trực quan. Vậy df là gì và làm thế nào để làm chủ nó? Trong bài viết này, mình sẽ hướng dẫn bạn chi tiết cách dùng df để quản lý tài nguyên hiệu quả, giúp bạn biết cách kiểm tra dung lượng ổ đĩa trên máy chủ một cách chuyên nghiệp nhất. Cùng bắt đầu khám phá ngay nhé!
Cần chuẩn bị gì trước khi dùng lệnh df?
- Quyền người dùng: Có thể sử dụng với user thường để xem thông tin các phân vùng được gắn (mount). Quyền root hoặc sudo là cần thiết nếu muốn xem chi tiết thông tin của các file hệ thống bị hạn chế.
- Hệ điều hành hỗ trợ: Hầu hết các bản phân phối Linux (Ubuntu, Debian, CentOS, RHEL, Fedora...) và các hệ điều hành dựa trên Unix như macOS.
- Package dependencies: Lệnh df thuộc gói coreutils, thường được cài đặt sẵn mặc định trên mọi hệ thống Linux.
Cú pháp lệnh df là gì?
Lệnh df hỗ trợ nhiều dạng cú pháp khác nhau trên các hệ thống Linux/Unix.
df [OPTIONS] [FILE...]# Output cho lệnh df ```html
Các tùy chọn của lệnh df là gì?
Lệnh df cung cấp nhiều tùy chọn để điều chỉnh cách hiển thị thông tin dung lượng đĩa, bao gồm các tùy chọn về định dạng đầu ra, đơn vị hiển thị, và bộ lọc hệ thống tệp.
| Tùy chọn ngắn | Tùy chọn dài | Mô tả |
|---|---|---|
| -a | --all | df -a hiển thị tất cả các hệ thống tệp, bao gồm cả những hệ thống có dung lượng 0 byte. |
| -B | --block-size | df -B {đơn vị} thiết lập kích thước khối để hiển thị, ví dụ: 1K, 1M, 1G. |
| -h | --human-readable | df -h hiển thị dung lượng ở dạng dễ đọc (K, M, G, T). |
| -H | --si | df -H hiển thị dung lượng theo hệ SI (1 KB = 1000 byte thay vì 1024 byte). |
| -i | --inodes | df -i hiển thị số lượng inode được sử dụng và còn trống thay vì dung lượng khối. |
| -k | df -k hiển thị dung lượng theo đơn vị kilobyte. | |
| -m | df -m hiển thị dung lượng theo đơn vị megabyte. | |
| -P | --portability | df -P đưa ra kết quả theo định dạng POSIX, phù hợp với các hệ thống khác. |
| -T | --print-type | df -T hiển thị loại hệ thống tệp (ext4, ntfs, vfat, v.v.) cho mỗi điểm gắn. |
| -t | --type | df -t {loại} chỉ hiển thị các hệ thống tệp thuộc loại được chỉ định. |
| -x | --exclude-type | df -x {loại} loại trừ các hệ thống tệp thuộc loại được chỉ định khỏi kết quả. |
| --output | df --output={cột1,cột2} chỉ định các cột cần hiển thị, ví dụ: source, target, used, avail. | |
| --sync | df --sync đồng bộ hóa hệ thống tệp trước khi lấy thông tin dung lượng. |
xem thêm: Basic File and Directory Operations
Lệnh df được sử dụng như thế nào trong thực tế?
Các ví dụ dưới đây mô phỏng các tình huống kiểm tra dung lượng lưu trữ phổ biến mà quản trị viên hệ thống thường gặp.
df là gì? [Hiển thị dung lượng hệ thống file]
df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 51457280 12456784 36420608 25% / tmpfs 1635428 0 1635428 0 /dev/shm
Lệnh hiển thị danh sách tất cả các phân vùng và hệ thống file đang được mount. Trong thực tế, kết quả này thường hiển thị ở đơn vị block (1K), gây khó khăn khi đọc nhanh các con số lớn.
df -h là gì? [Hiển thị dung lượng dạng dễ đọc]
df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 12G 38G 25% / tmpfs 1.6G 0 1.6G 0% /dev/shm
Tham số -h (human-readable) chuyển đổi các con số sang đơn vị GB, MB để con người dễ quan sát. Đây là cách dùng phổ biến nhất trên môi trường production để kiểm tra nhanh tình trạng ổ đĩa.
df -Th là gì? [Hiển thị loại hệ thống file]
df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext4 50G 12G 38G 25% / tmpfs tmpfs 1.6G 0 1.6G 0% /dev/shm devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev/devtmpfs
Tham số -T cho phép xác định định dạng của hệ thống file như ext4, xfs hoặc tmpfs. Trong thực tế, thông tin này rất quan trọng khi cần kiểm tra tính tương thích của file system trước khi thực hiện các thao tác backup hoặc resize phân vùng.
df -h /dev/sda1 là gì? [Kiểm tra một phân vùng cụ thể]
df -h /dev/sda1 Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 12G 38G 25% /
Lệnh chỉ tập trung vào một thiết bị lưu trữ hoặc một điểm mount nhất định. Điều này giúp giảm nhiễu thông tin khi hệ thống có quá nhiều phân vùng ảo hoặc loop device, giúp sysadmin tập trung vào ổ đĩa vật lý cần xử lý.
df -h | grep '^/dev/' là gì? [Lọc các ổ đĩa vật lý]
df -h | grep '^/dev/' /dev/sda1 50G 12G 38G 25% / /dev/sdb1 100G 40G 60G 40% /data
Sử dụng pipe kết hợp grep để chỉ lọc ra các dòng bắt đầu bằng /dev/. Trong các script automation hoặc monitor hệ thống, cách làm này giúp loại bỏ các hệ thống file tạm (tmpfs) để chỉ lấy dữ liệu về các ổ đĩa vật lý thực sự.
Lệnh df gặp lỗi hoặc không hiển thị đúng dung lượng ổ đĩa là gì?
Dưới đây là các trường hợp lỗi thực tế thường gặp khi quản trị hệ thống sử dụng lệnh df trong quá trình kiểm tra dung lượng lưu trữ.
Lỗi không hiển thị dung lượng thực tế do thiết bị treo (Stale NFS handle)
df -h df: error reading '/mnt/nfs_share': Stale file handle
Lệnh df không thể hoàn tất việc quét toàn bộ hệ thống vì gặp phải một mount point NFS đã bị ngắt kết nối không đúng cách, khiến tiến trình bị chặn.
Lỗi không thấy dung lượng đã sử dụng dù ổ đĩa báo đầy
df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 30G 40% /
Dung lượng hiển thị qua df không phản ánh đúng thực tế nếu các tệp tin lớn đã bị xóa nhưng vẫn đang bị một tiến trình (process) nắm giữ (open), khiến không gian chưa được giải phóng vào hệ thống tệp.
Lỗi hiển thị sai đơn vị đo lường gây khó khăn khi đọc dữ liệu
df Filesystem 1K-blocks Used Available Use% Mounted on /dev/nvme0n1p2 494382720 123456789 370925931 25% /
Khi thiếu tham số tùy chọn, df mặc định hiển thị đơn vị theo block 1K, gây khó khăn cho việc ước lượng nhanh dung lượng thực tế của các ổ đĩa dung lượng lớn.
Lỗi không hiển thị các loại file system đặc biệt
df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 40G 10G 30G 25% /
Trong một số cấu hình, lệnh df mặc định có thể bỏ qua các loại file system ảo như tmpfs hoặc devtmpfs, khiến người quản trị không kiểm soát được dung lượng bộ nhớ tạm.
Quy trình kiểm tra tài nguyên lưu trữ khi quản trị hệ thống Linux?
Trong kịch bản vận hành server, việc kiểm tra dung lượng đĩa cứng thường là bước đệm để xác định nguyên nhân gây đầy bộ nhớ trước khi thực hiện dọn dẹp hoặc mở rộng phân vùng.
Bước 1: Kiểm tra tổng quan dung lượng các phân vùng
df -h
Lệnh cho phép bạn xem danh sách các hệ thống tệp kèm theo dung lượng đã dùng và còn trống dưới định dạng dễ đọc (GB, MB).
Bước 2: Xác định thư mục nào đang chiếm dụng không gian lớn nhất
du -sh /var/log/*
Sau khi xác định được phân vùng đầy bằng df, lệnh này giúp bạn liệt kê kích thước cụ thể của từng thư mục hoặc tệp tin trong đường dẫn mục tiêu.
Bước 3: Tìm kiếm các tệp tin lớn để thực hiện dọn dẹp
find /var/log -type f -size +100M
Trong trường hợp dung lượng đã cạn kiệt, lệnh này cho phép bạn tìm nhanh các tệp tin có kích thước lớn hơn 100MB để ưu tiên xử lý.
Bước 4: Giải phóng không gian lưu trữ
rm -f /var/log/old_logfile.log
Sau khi đã xác định được tệp tin dư thừa, lệnh này thực hiện xóa tệp để khôi phục dung lượng trống cho hệ thống.
Việc sử dụng lệnh df trên môi trường VPS đòi hỏi sự chính xác về đơn vị đo lường để tránh nhầm lẫn trong quá trình quản trị. Khi thực hiện lệnh df -h, hệ thống hiển thị dung lượng dưới dạng dễ đọc (Human-readable) như GB hoặc MB. Trong các trường hợp kiểm tra dung lượng ổ đĩa trên VPS, việc thiếu tham số -h dẫn đến việc hiển thị đơn vị block mặc định, gây khó khăn cho việc đọc số liệu thực tế. Một lỗi phổ biến xảy ra khi hệ thống file sử dụng định dạng lớn nhưng lệnh df không hiển thị đầy đủ dung lượng khả dụng do cơ chế dành riêng cho root (reserved blocks). Khi quản trị VPS, việc chạy lệnh df -T cho phép xác định chính xác loại định dạng hệ thống file như ext4 hoặc xfs, giúp hỗ trợ việc debug lỗi tràn ổ đĩa một cách hiệu quả hơn.
Những câu hỏi thường gặp về lệnh df?
Dưới đây là các câu hỏi phổ biến nhất mà người dùng thường gặp khi thao tác với lệnh df trong hệ điều hành Linux.
Làm thế nào để xem dung lượng đĩa dưới định dạng dễ đọc (GB, MB)?
Sử dụng tùy chọn -h để chuyển đổi các con số sang đơn vị human-readable giúp người dùng dễ dàng quan sát dung lượng thực tế.
df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 30G 40% /
Làm sao để kiểm tra dung lượng của một thư mục hoặc phân vùng cụ thể?
Bạn có thể truyền đường dẫn của thư mục hoặc điểm gắn kết (mount point) trực tiếp vào sau lệnh df.
df -h /home Filesystem Size Used Avail Use% Mounted on /dev/sda2 100G 40G 60G 40% /home
Lệnh df hiển thị các loại hệ thống tệp (Filesystem type) như thế nào?
Sử dụng tùy chọn -T để hiển thị thêm cột thông tin về định dạng hệ thống tệp như ext4, xfs hoặc tmpfs.
df -T Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext4 50G 20G 30G 40% / tmpfs tmpfs 3.9G 0 3.9G 0% /run
Làm thế nào để lọc kết quả chỉ hiển thị các hệ thống tệp thực (physical disks)?
Sử dụng tùy chọn -x để loại bỏ các loại hệ thống tệp ảo như tmpfs hoặc devtmpfs khỏi danh sách hiển thị.
df -h -x tmpfs -x devtmpfs Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 30G 40% /
Làm cách nào để kiểm tra dung lượng inode còn trống?
Sử dụng tùy chọn -i để xem thông tin về số lượng inode thay vì dung lượng lưu trữ vật lý.
df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda1 6561440 123456 6437984 2% /
Làm thế nào để hiển thị dung lượng của tất cả các hệ thống tệp, kể cả các tệp ảo?
Sử dụng tùy chọn -a để hiển thị mọi tệp hệ thống hiện có trên máy tính.
df -a Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 30G 40% / sysfs 0 0 0 0% /sys proc 0 0 0 0% /proc
Lệnh df là một công cụ vô cùng hữu ích giúp bạn kiểm tra và hiển thị thông tin chi tiết về dung lượng các phân vùng hệ thống tệp trên Linux. Bạn có thể dễ dàng sử dụng tham số -h để đọc dữ liệu dưới định dạng dễ hiểu hơn, hoặc kết hợp với -T để biết chính xác loại hệ thống tệp đang sử dụng, đúng không nhỉ? Việc nắm vững các tùy chọn này sẽ giúp bạn quản lý tài nguyên máy chủ một cách chủ động và hiệu quả hơn rất nhiều. Chúc bạn thành công!