Hướng dẫn sử dụng command để kiểm tra dung lượng hosting

Kiến thức hosting

Dung lượng ổ cứng hosting bị đầy (full disk) là vấn đề rất rắc rối đối với bất kỳ một webmaster nào, bởi khi đó website sẽ trở nên chậm hoặc thậm chí là đơ lag trong một thời gian. Và có khi đối với những người mới thì đây thực sự là một thảm hoạ.

Cách fix lỗi giới hạn bộ nhớ PHP, PHP memory exhausted error trong sử dụng WordPress

Mua hosting tại iNET hay cloud hosting tại iNET?

Thông thường việc đầu tiên cần làm đó tìm kiếm những file thư mục chiếm dụng nhiều tài nguyên nhất để xử lý. Đa số các file sẽ nằm trong các thư mục chính có khả năng chiếm nhiều dung lượng như /tmp, /home hay /var.

Tuy nhiên thì Linux lại không cung cấp các lệnh đơn nào cho phép thống kê các file/thư mục chiếm nhiều dung lượng. Tuy nhiên người dùng hoàn toàn có thể kết hợp sử dụng các câu lệnh đơn giản với command (sử dụng câu lệnh ghép), qua đó tìm ra được những file nào đang chiếm dụng nhiều tài nguyên hosting nhất.

cmd
Chúng tôi xin chia sẻ một vài thao tác trên giao diện command của server như các gợi ý sau đây:

1.Sử dụng lệnh df

Lệnh này cho phép người dùng xem trực tiếp được dung lượng của từng thư mục.

?
1
2
3
4
5
6
7
[root@xxx ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cciss/c0d0p2     78361192  23185840  51130588  32% /
/dev/cciss/c0d0p5     24797380  22273432   1243972  95% /home
/dev/cciss/c0d0p3     29753588  25503792   2713984  91% /data
/dev/cciss/c0d0p1       295561     21531    258770   8% /boot
?
1
2
3
4
5
6
7
8
9
10
11
12
13
[root@xxx ~]# df -a
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cciss/c0d0p2     78361192  23186116  51130312  32% /
proc                         0         0         0   -  /proc
sysfs                        0         0         0   -  /sys
devpts                       0         0         0   -  /dev/pts
/dev/cciss/c0d0p5     24797380  22273432   1243972  95% /home
/dev/cciss/c0d0p3     29753588  25503792   2713984  91% /data
/dev/cciss/c0d0p1       295561     21531    258770   8% /boot
tmpfs                   257476         0    257476   0% /dev/shm
none                         0         0         0   -  /proc/sys/fs/binfmt_misc
sunrpc                       0         0         0   -  /var/lib/nfs/rpc_pipefs
?
1
2
3
4
5
6
7
8
[root@xxx ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/cciss/c0d0p2      75G   23G   49G  32% /
/dev/cciss/c0d0p5      24G   22G  1.2G  95% /home
/dev/cciss/c0d0p3      29G   25G  2.6G  91% /data
/dev/cciss/c0d0p1     289M   22M  253M   8% /boot
tmpfs                 252M     0  252M   0% /dev/shmof /home
?
1
2
3
4
5
[root@xxx ~]# df -hT /home
Filesystem      Type    Size  Used Avail Use% Mounted on
/dev/cciss/c0d0p5   ext3     24G   22G  1.2G  95% /home
View all Disk Partitions in Linux
?
1
2
3
4
5
6
7
8
9
10
11
[root@xxx ~]# fdisk –l
Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended

2.Sử dụng lệnh du :

Ví dụ: Lệnh command này sẽ hướng dẫn bạn tìm được 10 thư mục đang chiếm nhiều dung lượng trên hosting nhất:

1
2
3
4
5
6
7
8
9
10
11
12
[root@xxx ~]#du -a /var | sort -n -r | head -n 10
1008372 /var
313236 /var/www
253964 /var/log
192544 /var/lib
152628 /var/spool
152508 /var/spool/squid
136524 /var/spool/squid/00
95736 /var/log/mrtg.log
74688 /var/log/squid
62544 /var/cache
  • du: Tính dung lượng ổ cứng mà file/thư mục đang chiếm dụng.
  • sort: Sắp xếp các dòng của một file text hoặc của dữ liệu truyền vào.
  • output: Hiển thị một số nội dung một file văn bản, ví dụ 10 dòng đầu tiên của kết quả sau sắp xếp sẽ là 10 file/thư mục chiếm nhiều dung lượng nhất.

Nếu bạn muốn một kết quả chi tiết hơn, dễ hiểu hơn thì có thể thử nhiều phương án sau:

?
1
2
$ cd /path/to/some/where
$ du -hsx * | sort -rh | head -10

Trong đó:

  • cd /path/to/some/where: đường dãn đến thư mục cần kiểm tra.
  • Tham số -h (du -h): Hiện kết quả với định dạng quen thuộc với người dùng (ví dụ: 1K, 234M, 2G).
  • Tham số -s (du -s): Chỉ hiện thống kê chung kết quả kiểm tra của lệnh du.
  • Tham số -x (du -x): Bỏ qua thư mục khác định dạng file hệ thống của hệ điều hành.
  • Tham số -r (sort -r): Đảo ngược kết quả so sánh.
  • Tham số -h (sort -h): So sánh bằng tham số điều chỉnh đơn vị đo lường quen thuộc (K, M, G). Chỉ áp dụng cho lệnh sort cài thêm theo giấy phép phần mềm GNU.
  • Tham số -10 hoặc -n 10 (head -10 hoặc head -n 10): Hiển thị 10 dòng đầu tiên của kết quả tìm kiếm.
?
1
2
3
4
5
6
7
8
# du /home/wiki
40 /home/wiki/downloads
4 /home/wiki/.mozilla/plugins
4 /home/wiki/.mozilla/extensions
12 /home/wiki/.mozilla
12 /home/wiki/.ssh
689112 /home/wiki/Ubuntu-12.10
689360 /home/wiki
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# du -h /home/wiki
40K /home/wiki/downloads
4.0K /home/wiki/.mozilla/plugins
4.0K /home/wiki/.mozilla/extensions
12K /home/wiki/.mozilla
12K /home/wiki/.ssh
673M /home/wiki/Ubuntu-12.10
du -sh /home/wiki
674M /home/wiki
du -a /home/wiki
4 /home/wiki/.bash_logout
12 /home/wiki/downloads/uploadprogress-1.0.3.1.tgz
24 /home/wiki/downloads/Phpfiles-org.tar.bz2
40 /home/wiki/downloads
12 /home/wiki/uploadprogress-1.0.3.1.tgz
4 /home/wiki/.mozilla/plugins
4 /home/wiki/.mozilla/extensions
12 /home/wiki/.mozilla
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# du -ah /home/wiki
4.0K /home/wiki/.bash_logout
12K /home/wiki/downloads/uploadprogress-1.0.3.1.tgz
24K /home/wiki/downloads/Phpfiles-org.tar.bz2
40K /home/wiki/downloads
12K /home/wiki/uploadprogress-1.0.3.1.tgz
4.0K /home/wiki/.mozilla/plugins
du -mh /home/wiki
40K /home/wiki/downloads
4.0K /home/wiki/.mozilla/plugins
4.0K /home/wiki/.mozilla/extensions
12K /home/wiki/.mozilla
12K /home/wiki/.ssh
673M /home/wiki/Ubu
du -ch /home/wiki
40K /home/wiki/downloads
4.0K /home/wiki/.mozilla/plugins
4.0K /home/wiki/.mozilla/extensions
12K /home/wiki/.mozilla
12K /home/wiki/.ssh
673M /home/wiki/Ubuntu-12.10
674M /home/wiki
674M total
?
1
2
3
4
5
6
7
8
9
# du -ah --exclude="*.txt" /home/wiki  (bỏ file .txt )
4.0K /home/wiki/.bash_logout
12K /home/wiki/downloads/uploadprogress-1.0.3.1.tgz
24K /home/wiki/downloads/Phpfiles-org.tar.bz2
40K /home/wiki/downloads
12K /home/wiki/uploadprogress-1.0.3.1.tgz
4.0K /home/wiki/.bash_history
4.0K /home/wiki/.bash_profile
4.0K /home/wiki/.mozilla/plugins
?
1
2
3
4
5
6
7
8
# du -ha --time /home/wiki
4.0K 2012-10-12 22:32 /home/wiki/.bash_logout
12K 2013-01-19 18:48 /home/wiki/downloads/uploadprogress-1.0.3.1.tgz
24K 2013-01-19 18:48 /home/wiki/downloads/Phpfiles-org.tar.bz2
40K 2013-01-19 18:48 /home/wiki/downloads
12K 2013-01-19 18:32 /home/wiki/uploadprogress-1.0.3.1.tgz
4.0K 2012-10-13 00:11 /home/wiki/.bash_history
4.0K 2012-10-12 22:32 /home/wiki/.bash_profile

Hoặc tìm kiếm chi tiết các file dung lượng lớn như :

?
1
2
3
4
5
6
du -hs * $1 |
 sed  's/^\([0-9.]*\)\([KMG]*\)/\2 \1\2/
       s/^K/1/;s/^M/2/;s/^G/3/' |
         sort -g -k1 -k2n |
           cut -c3- |
             tail -$2

3.Sử dụng script :

Một script tìm kiếm những file với dung lượng >MB bằng find với syntax:

find {/path/to/directory/} -type f -size +{size-in-kb}k -exec ls -lh {} \; | awk "{ print $9 ": " $5 }"

Ví dụ : chúng ta thực hiện tìm những file có dung lượng lớn hơn 50MB tại thư mục hiện hành:

find . -type f -size +50000k -exec ls -lh {} \; | awk "{ print $9 ": " $5 }"

Search trong /var/log:

find /var/log -type f -size +100000k -exec ls -lh {} \; | awk "{ print $9 ": " $5 }"

(Tham khảo mạng internet)

Leave a Reply

Your email address will not be published. Required fields are marked *