Read more

Getlinkaz.com – Cách tìm file và thư mục có dung lượng lớn nhất trên VPS Linux . Một ngày nọ, khi bạn đang quản lý hệ thống VPS/Server Linux của mình và nhận được cảnh báo hết dung lượng ổ cứng. Thì lúc này chẳng còn cách nào khác đó là hãy tìm và tìm những file nào? thư mục nào đang chiếm dung lượng lớn trên Linux.

Demo Show File
Có thể đó là file backup, cũng có thể đó là file log lâu ngày phình to,… dù là gì thì bạn cũng phải tìm cho ra nó để quyết dịnh có xoá không. Nếu không xoá thì bạn sẽ không thể nào giải phóng bớt dung lượng ổ cứng VPS/Server và các hoạt động dịch vụ có thể bị ngừng hoạt động. Nguy hiểm vô cùng phải không nào ? 😮 .

Thế có bao nhiêu cách có thể giúp bạn tìm ra các file hay thư mục có dung lượng lớn trên VPS nào ?! Mình sẽ trình bày cho các bạn 2 cách đơn giản và dễ thực hiện gồm sự kết hợp giữa các câu lệnh với nhau :
– Lệnh du trên Linux
– Lệnh find trên Linux
1. Dùng lệnh “du”

– Dùng lệnh du chúng ta sẽ tìm kiếm theo cách tuần tự các thư mục có dung lượng lớn. Đó là chương trình lệnh sẽ thống kê top các thư mục đang có dung lượng lớn nhất. Sau đấy, chúng ta chỉ cần kiểm tra tuần tự các thư mục đang có dung lượng lớn đấy.

Cấu trúc lệnh
du -hs /path/ | sort -rh | head -n 10

 du -hs /path/ | sort -rh | head -n 10

Chú thích :

  •     /path/ : đường dẫn thư mục mà bạn muốn kiểm tra.
  •     -h : in ra dung lượng thư mục/file theo format thuận tiện cho người đọc (MB, GB).
  •     -s : chỉ hiển thị tổng dung lượng.
  •     sort : lệnh dùng để sắp xếp kí tự. Ở đây ta dùng để sắp xếp dữ liệu số dung lượng thư mục/file.
  •     -r : đảo ngược chiều output của lệnh sort.
  •     -h : dùng để so sánh sắp xếp các số theo kiểu dung lượng (2K, 1G,..).
  •     head -n 10 : lấy 10 dòng đầu tiên của output.

Ví dụ 1:
# du -hs /var/log/* | sort -rh | head -n 10
767M /var/log/nginx
183M /var/log/sa
46M /var/log/resources-monitor
9.1M /var/log/maillog-20170911
8.2M /var/log/maillog-20170903
8.0M /var/log/maillog-20170827
6.4M /var/log/maillog-20170917
4.8M /var/log/maillog
4.4M /var/log/messages-20170911
3.8M /var/log/messages-20170903

    
# du -hs /var/log/* | sort -rh | head -n 10
767M /var/log/nginx
183M /var/log/sa
46M /var/log/resources-monitor
9.1M /var/log/maillog-20170911
8.2M /var/log/maillog-20170903
8.0M /var/log/maillog-20170827
6.4M /var/log/maillog-20170917
4.8M /var/log/maillog
4.4M /var/log/messages-20170911
3.8M /var/log/messages-20170903
# du -hs /var/log/nginx/* | sort -rh | head -n 10
469M /var/log/nginx/domains
297M /var/log/nginx/vhost_error.log
1.1M /var/log/nginx/error.log
556K /var/log/nginx/access.log

    
# du -hs /var/log/nginx/* | sort -rh | head -n 10
469M /var/log/nginx/domains
297M /var/log/nginx/vhost_error.log
1.1M /var/log/nginx/error.log
556K /var/log/nginx/access.log


2. Dùng lệnh “find”
– Lệnh find là một trong những lệnh khá là mạnh mẽ trong việc tìm kiếm thư mục/file theo các thông tin cần được lọc. Bên cạnh đó cũng hỗ trợ lệnh khác xử lý các output đã được tìm thấy (-exec). Với cấu trúc lệnh dưới đây sẽ thống kê rất chi tiết các file/thư mục nào đang có dung lượng lớn nhất. Mình thường sử dụng cách 2 này.

Cấu trúc lệnh
find /var/log/ -type f -exec du -Sh {} + | sort -rh | head -n 10

find /var/log/ -type f -exec du -Sh {} + | sort -rh | head -n 10

Chú thích:

    type [ f | d ]: nếu bạn dùng option f, tức bạn chỉ muốn tìm kiếm file và kiểm tra dung lượng file đã tìm thấy. Nếu bạn dùng option d , thì bạn chỉ muốn tìm kiếm thư mục và kiểm tra dung lượng thư mục đó.
    -exec du -sh : lệnh này sẽ giúp lấy thông tin dung lượng của đối tượng file/thư mục.

Ví dụ 2:
– Liệt kê top 10 file có dung lượng cao nhất trong thư mục /var/log/ .
# find /var/log/ -type f -exec du -Sh {} + | sort -rh | head -n 10
300M /var/log/nginx/vhost_error.log
268M /var/log/nginx/domains/getlinkaz.com.log
157M /var/log/nginx/domains/tuhocmang.com.log
40M /var/log/nginx/domains/getlinkaz.com.bytes
25M /var/log/resources-monitor/ram-monitor.log
22M /var/log/resources-monitor/load-avg-monitor.log
9.1M /var/log/maillog-20170911
8.2M /var/log/maillog-20170903
8.0M /var/log/maillog-20170827
6.4M /var/log/maillog-20170917

    
# find /var/log/ -type f -exec du -Sh {} + | sort -rh | head -n 10
300M /var/log/nginx/vhost_error.log
268M /var/log/nginx/domains/getlinkaz.com.log
157M /var/log/nginx/domains/tuhocmang.com.log
40M /var/log/nginx/domains/getlinkaz.com.bytes
25M /var/log/resources-monitor/ram-monitor.log
22M /var/log/resources-monitor/load-avg-monitor.log
9.1M /var/log/maillog-20170911
8.2M /var/log/maillog-20170903
8.0M /var/log/maillog-20170827
6.4M /var/log/maillog-20170917


– Liệt kê top 10 thư mục có dung lượng cao nhất trong thư mục /var/log/ .
# find /var/log/ -type d -exec du -Sh {} + | sort -rh | head -n 10
470M /var/log/nginx/domains
302M /var/log/nginx
184M /var/log/sa
67M /var/log/
46M /var/log/resources-monitor
1.5M /var/log/anaconda
172K /var/log/audit
32K /var/log/tuned
4.0K /var/log/ppp
4.0K /var/log/pluto/peer

    
# find /var/log/ -type d -exec du -Sh {} + | sort -rh | head -n 10
470M /var/log/nginx/domains
302M /var/log/nginx
184M /var/log/sa
67M /var/log/
46M /var/log/resources-monitor
1.5M /var/log/anaconda
172K /var/log/audit
32K /var/log/tuned
4.0K /var/log/ppp
4.0K /var/log/pluto/peer


Chà đơn giản phải không nào ! Với 2 cách sử dụng trên bạn hoàn toàn có thể tự mình kiểm tra các file/thư mục có dung lượng lớn trên VPS Linux rồi phải không nào. Vậy còn ngại gì mà không thực hành áp dụng thử xem nào. Nếu có thắc mắc gì thì comment bên dưới để cùng trao đổi với ‘Getlinkaz.com‘ nhé.