Tìm kiếm file và thư mục theo dung lượng

 💡 Trong khi quản trị hệ thống Linux, ắt hẳn có nhiều lúc bạn cần tìm kiếm hoặc sắp xếp các file theo dung lượng. Ví dụ như một phân vùng của hệ thống có dung lượng quá lớn, bạn muốn biết các file nào có dung lượng lớn nhất, để cân nhắc có nên xóa đi để giải phóng dung lượng hay không

Trường hợp 1: Sắp xếp các file theo dung lượng giảm dần trong 1 thư mục

Bạn muốn sắp xếp các file theo dung lượng giảm dần. Hiển thị ra màn hình 5 file đầu tiên

$ ls -laS |grep "^-"| head -5

Kết quả trả ra như sau:

-rw-r--r--. 1 oracle oinstall 3453696911 Oct 7 2019 Oracle Database 12R2.zip
-rw-r--r--. 1 oracle oinstall 616912 Feb 8 06:52 awrrpt_1_27_30.html
-rw-r--r--. 1 oracle oinstall 513819 Feb 8 06:37 awrrpt_1_28_30.html
-rw-------. 1 oracle oinstall 6219 Apr 17 10:58 .viminfo
-rw-------. 1 oracle oinstall 5580 Apr 17 08:35 .ICEauthority

Trường hợp 2: Lấy ra các file lớn nhất cả ở trong các thư mục con

Đôi khi bạn cần biết các file lớn nhất ở trong toàn bộ các thư mục con. Trường hợp này thực tế rất hay gặp khi một phân vùng (ví dụ /u01) của bạn gần đầy, trong đó có chứa cả file và nhiều thư mục con. Bạn cần phải nhanh chóng biết những file lớn và thư mục cụ thể đang chứa chúng để có phương án xử lý.

$ find /u01 -ls |sort -nrk7|head -5

Kết quả trả ra như sau:

804203 1935372 -rw-r----- 1 oracle oinstall 1981816832 Apr 16 07:27 /u01/app/oracle/oradata/lab/system01.dbf
804274 624652 -rw-r----- 1  oracle oinstall 639639552 Apr 16 07:30 /u01/app/oracle/oradata/lab/sysaux01.dbf
930759 416184 -rw-r--r-- 1 oracle oinstall 426166074 Oct 7 2019 /u01/app/oracle/product/11.2.0/dbhome_1/lib/libserver12.a
930806 398552 -rwsr-s--x 1 oracle oinstall 408110137 Oct 7 2019 /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle
788431 274472 -rw-r----- 1 oracle oinstall 281059328 Jan 26 2017 /u01/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/templates/Seed_Database.dfb

Giải thích câu lệnh:

  • sort -nrk7: Sắp xếp giảm dần theo cột thứ 7 (ở đây là cột về dung lượng)

Trường hợp 3: Tìm kiếm file dựa trên dung lượng

Bạn muốn tìm kiếm các file có dung lượng lớn hơn 10G ?

find . -size 10G

Bạn muốn tìm kiếm các file có dung lượng nhỏ hơn 10G ?

find . -size 10G

Tìm kiếm TOP 5 directory có dung lượng lớn nhất trong phân vùng /u01

$ du -S /u01 |sort -nr |head -5
3452548 /u01/app/oracle/oradata/lab
1944552 /u01/app/oracle/product/11.2.0/dbhome_1/lib
623464 /u01/app/oracle/product/11.2.0/dbhome_1/bin
411616 /u01/app/oracle/product/11.2.0/dbhome_1/assistants/dbca/templates
344600 /u01/app/oracle/product/11.2.0/dbhome_1/javavm/jdk/jdk8/admin

Bạn muốn biết tổng dung lượng của một phân vùng ?

$ du -sh /u01
11G /u01

du -ahx /var/lib | sort -rh | head -n 30

Related posts

How to change SSH Default Port in CentOS 8

The SnapAPI kernel module is not loaded for the kernel

Hướng dẫn mount ổ đĩa 4TB vào máy chủ Linux