Hướng dẫn sử dụng command để kiểm tra dung lượng 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
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.
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)