Trong quá trình sử dụng VPS/Server, đôi lúc bạn sẽ cần phải xóa bớt file hoặc thư mục có dung lượng lớn không sử dụng đến để giải phóng bớt dung lượng ổ cứng. Bằng cách sử dụng kết hợp 3 lệnh sau đây bạn có thể dễ dàng tìm được dữ liệu đang chiếm phần lớn dung lượng ổ cứng để xóa đi giải bớt dung lượng ổ cứng.

  1. Lệnh du: xác định dung lượng sử dụng
  2. Lệnh sort: sort lại các dòng của file text hoặc input data
  3. Lệnh head: output dữ liệu từ trên xuống, ví dụ lấy 10 dòng đầu tiên chẳng hạn

Kiểm tra dung lượng của thư mục /home/

du -sh /home/

Sử dụng lệnh bên dưới để tìm 10 file/thư mục có dung lượng lớn nhất. Thay /home bằng đường dẫn bạn muốn

du -a /home/ | sort -n -r | head -n 10

Output ví dụ:

589700 /home
589696 /home/hocvps.com
526988 /home/hocvps.com/public_html
506628 /home/hocvps.com/public_html/wp-content
385096 /home/hocvps.com/public_html/wp-content/uploads
179988 /home/hocvps.com/public_html/wp-content/uploads/2014
117072 /home/hocvps.com/public_html/wp-content/uploads/2013
74212 /home/hocvps.com/public_html/wp-content/plugins
47296 /home/hocvps.com/public_html/wp-content/uploads/2012
43100 /home/hocvps.com/public_html/wp-content/cache

Nếu bạn muốn convert thông tin byte thành MB, KB thì dùng lệnh sau:

cd /path
du -hsx * | sort -rh | head -10

Các lệnh trên chỉ sử dụng được khi hệ điều hành có cài đặt sort, nếu không thì bạn có thể dùng lệnh dưới đây:

for i in G M K; do du -ah | grep [0-9]$i | sort -nr -k 1; done | head -n 11

Output ví dụ:

179M	.
84M	./uploads
57M	./images
51M	./images/faq
49M	./images/faq/2013
48M	./uploads/cms
37M	./videos/faq/2013/12
37M	./videos/faq/2013
37M	./videos/faq
37M	./videos
36M	./uploads/faq

Lệnh tìm kiếm các file lớn nhất trong 1 thư mục:

find /path -printf '%s %p\n'| sort -nr | head -10
find . -printf '%s %p\n'| sort -nr | head -10

Output ví dụ:

5700875 ./images/faq/2013/11/iftop-outputs.gif
5459671 ./videos/faq/2013/12/glances/glances.webm
5091119 ./videos/faq/2013/12/glances/glances.ogv
4706278 ./images/faq/2013/09/cyberciti.biz.linux.wallpapers_r0x1.tar.gz
3911341 ./videos/faq/2013/12/vim-exit/vim-exit.ogv
3640181 ./videos/faq/2013/12/python-subprocess/python-subprocess.webm
3571712 ./images/faq/2013/12/glances-demo-large.gif
3222684 ./videos/faq/2013/12/vim-exit/vim-exit.mp4
3198164 ./videos/faq/2013/12/python-subprocess/python-subprocess.ogv
3056537 ./images/faq/2013/08/debian-as-parent-distribution.png.bak

Để chỉ hiển thị file, bỏ qua thư mục thì các bạn dùng lệnh:

find /path -type f -printf '%s %p\n'| sort -nr | head -10

hoặc

find /path -type f -iname "*.mp4" -printf '%s %p\n'| sort -nr | head -10

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

8 Comments

  1. Nhật Nguyễn 1 comment

    Mình đang tìm mấy thư mục file lớn để xóa bớt cho nhẹ vps. Thanks bạn nhé.
    Nhưng mấy lệnh công nhận khó nhớ thật đó. Có rules nào để dễ nhớ không ad

    1. Việt Phương Moderator

      Lệnh này bên Linux nên có quy tắc của nó rồi. Bạn nhớ lệnh chính là được rồi chứ nhớ bao gồm cả các hậu tố theo sau thì khoai
      Thành ra khi nào cần dùng thì bạn copy thôi

  2. nguyen van duong 9 comment

    em check bằng df -k nó vẫn hiển thị 0 thế, code vẫn báo ko còn dung lượng, reboot lại thì hết

  3. nguyen van duong 9 comment

    anh cho em hỏi em hay dùng lệnh rm -rf để xóa thư mục, nhưng vừa rồi bị là nó đã xóa nhưng ổ cứng vẫn ko tăng lên, mà phải reboot lại server thì ổ mới tăng. Không biết có cách nào xóa thư mục mà ổ cứng được giải phóng luôn ko nhỉ ?

    1. Việt Phương Moderator

      Sau đó bạn check bằng df -ah à? Mình nghĩ kết quả hiển thị chưa chính xác ngay. Và thường mình dùng rm-rf xóa là ok rồi

  4. DnitVn 38 comment

    Chào Admin, Mình có câu hỏi ngoài lề. Nhờ Admin giúp.

    Mình có dùng wget để download files từ một list đường dẫn trong file text.txt. Nội dung file text gồm các file chứa trong các cấp thư mục khác nhau như sau:

    http://domain.com/folder_a/file1.mp3
    http://domain.com/folder_a/file2.mp3
    http://domain.com/folder_a/folder_a1/file1.mp3
    http://domain.com/folder_a/folder_a2/file1.mp3
    …..

    Giờ mình muốn download về bằng wget mà làm sao để sau khi down về thì các thư mục được tổ chức giống như trong link của nó.

    Mong admin giúp. Xin cảm ơn.

    1. Luân Trần Admin

      Bạn chuyển qua sử dụng curl đi, wget không làm được việc kia. Ví dụ:
      curl http://www.site.org/image.jpg --create-dirs -o /path/to/save/images.jpg