Tìm file, thư mục có dung lượng lớn nhất trên VPS Linux bằng?
Bỗng dưng hệ thống VPS/Server Linux cảnh báo hết dung lượng ổ cứng thì nên xử lý như thế nào? Trước tiên hãy tìm file và thư mục có dung lượng lớn nhất, chiếm dung lượng nhiều nhất trên VPS Linux đã nhé.
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? Chúng tôi 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
Sử dụng lệnh “du” để kiểm tra
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 đó, 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
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/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
Dùng lệnh “find” để tìm file, thư mục có dung lượng lớn
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
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/cuongquach.com.log 157M /var/log/nginx/domains/tuhocmang.com.log 40M /var/log/nginx/domains/cuongquach.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
Bây giờ thì bạn đã có thể biết được file hoặc thư mục có dung lượng lớn trên VPS Linux rồi phải nào? Rất đơn giản. Bắt tay vào thực hiện ngay thôi nào! Chúc bạn may mắn.
Nguồn bài tham khảo: Cuongquach