Linux 磁碟 使用率 檢視 處理

gself發表於2019-02-22

1. 檢視當前本地磁碟的使用率概況,按目錄來統計大小排序。

# df -h

[root@Sp monitor]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  3.5G  4.1G  47% /
/dev/xvde2             50G   27G   20G  58% /data
10.135.54.64:/archive
                     1014G  386G  578G  41% /data/archive

複製程式碼

因為 /data/archive 是 NFS 網盤,整理本地硬碟的資料不需要包含進去,因此用 du --excluede 來排除一邊不檢查此FS。

# alias dua="du --exclude=/data/archive --exclude=/hash -sh * |sort -hr"

[root@Sp data]# pwd
/data
[root@Sp data]# dua
9.7G	huishoubao
8.0G	cdn
3.7G	log
2.3G	home
967M	release
354M	webroot
272M	chenliang
259M	shell
220M	code
70M	logs
69M	redis
64M	huming
58M	tmp
49M	upload
37M	yangrongan
28M	weiyuzhao
14M	yuzhenghao
8.0M	nginx_log
6.4M	lucene
2.3M	download
176K	sftp
16K	monitorlog
8.0K	wwwroot
8.0K	backup_nginx_log
4.0K	wwwlogs
4.0K	fulldisk.txt
4.0K	disk.txt
4.0K	backup
[root@Sp data]#

複製程式碼

可以用此方法進一步檢視大容量的目錄。

[root@Sp data]# cd log
[root@Sp log]# dua
1.8G	all_log.log
976M	task
607M	cgi_server
499M	nginxlogs
226M	evaluationlogs
224M	bossphplog
15M	lhs.txt
13M	monitor.err
5.7M	qq_order_syc_opt.log
5.3M	apple_warranty_server.log
4.2M	bossviews
636K	cgi_log_bak
304K	rpclog_archive.log
92K	fukang
28K	fukang1
28K	bossphpcache
16K	all_log.log.1
8.0K	all_log.log.5
8.0K	all_log.log.3
4.0K	monitor.info
4.0K	log4cplus.properties
4.0K	apple_warranty_detection.log
4.0K	all_log.log.4
4.0K	all_log.log.2
[root@Sp log]# ls -lh
total 1.9G
-rw-r--r-- 1 root       root       1.8G Feb 12 15:40 all_log.log
-rw-r--r-- 1 root       root        15K Apr  7  2017 all_log.log.1
-rw-r--r-- 1 root       root       1.7K Apr  7  2017 all_log.log.2
-rw-r--r-- 1 root       root       5.5K Apr  7  2017 all_log.log.3
-rw-r--r-- 1 root       root       1.7K Apr  7  2017 all_log.log.4
-rw-r--r-- 1 root       root       6.2K Apr  7  2017 all_log.log.5
-rw-r--r-- 1 root       root       3.8K Feb 12 15:40 apple_warranty_detection.log
-rw-r--r-- 1 root       root       5.3M Feb 12 15:40 apple_warranty_server.log
drwxr-xr-x 3 apache     apache     4.0K Nov 16 21:48 bossphpcache
drwxr-xr-x 3 apache     apache     4.0K Jan 10 16:36 bossphplog
drwxr-xr-x 3 apache     apache     4.0K Nov 16 16:39 bossviews
drwxr-xr-x 2 huishoubao huishoubao 4.0K Feb 12 03:01 cgi_log_bak
drwxr-xr-x 4 root       root       4.0K Feb  2 05:36 cgi_server
drwxr-xr-x 3 root       root       4.0K Nov 16 17:22 evaluationlogs
-rw-rw-r-- 1 huishoubao huishoubao  88K Feb 12 14:42 fukang
-rw-rw-r-- 1 huishoubao huishoubao  25K Feb  1 12:53 fukang1
-rw-rw-r-- 1 huishoubao huishoubao  15M Feb  1 17:51 lhs.txt
-rw-r--r-- 1 root       root       3.1K Aug 12  2017 log4cplus.properties
-rw-r--r-- 1 root       root        13M Feb 12 15:39 monitor.err
-rw-r--r-- 1 root       root        529 Feb 12 15:39 monitor.info
drwxr-xr-x 2 root       root       4.0K Feb 11 23:00 nginxlogs
-rw-r--r-- 1 root       root       5.7M Jul 26  2017 qq_order_syc_opt.log
-rw-r--r-- 1 root       root       298K Feb 12 02:00 rpclog_archive.log
drwxr-xr-x 3 root       root       4.0K Feb 12 00:00 task
複製程式碼

這裡可以看到一個 1.8G 的 log 檔案,但是檔案的更改日期是當前時間(Feb 12 15:40),也就是說程式正在使用。 可以用 tailf 來檢視正在寫入的資料。

# tailf ./all_log.log
複製程式碼

會看到一大堆輸出。 要判斷是什麼程式正在使用,可以用 fuser。

# fuser -auv ./all_log.log
[root@Sp log]# fuser -auv ./all_log.log
                     USER        PID ACCESS COMMAND
./all_log.log:       root        912 F.... (root)admin-supplemen
                     root       1148 F.... (root)admin-supplemen
                     root       1149 F.... (root)admin-supplemen
                     root       1150 F.... (root)admin-supplemen
                     root       1151 F.... (root)admin-supplemen
                     root       1355 F.... (root)api-cancel_orde
                     root       1356 F.... (root)api-cancel_orde
                     root       1357 F.... (root)api-cancel_orde
                     root       1358 F.... (root)api-cancel_orde
                     root       1359 F.... (root)api-cancel_orde
                     root       1360 F.... (root)api-cancel_orde
                     root       1361 F.... (root)api-cancel_orde
                     root       1362 F.... (root)api-cancel_orde
                     root       1363 F.... (root)api-cancel_orde
                     root       1364 F.... (root)api-cancel_orde
                     root       1365 F.... (root)api-cancel_orde
                     root       1366 F.... (root)api-cancel_orde
                     root       1367 F.... (root)api-cancel_orde
                     root       1368 F.... (root)api-cancel_orde
......
複製程式碼

可以看到有一些rpc或cgi程式正在使用 all_log.log,另外下面還有很多 php 程式。顯然這個檔案不能動。 繼續檢視發現 /data/log/cgi_server/base_product/ 下有7天以上的log檔案可以壓縮。 於是壓縮放到 /data/archive/logs/ 下對應的子目錄,需要建立子目錄。 不清楚放在哪裡的時候可以先find /data/archive/logs/ 下有沒有過去的 log 檔案。

[root@Sp logs]# ls -lh
total 44K
drwxr-xr-x  4 root root 4.0K Oct 30 19:22 boss
drwxrwxrwx 11 root root 4.0K Nov 25 14:30 cgilog
drwxr-xr-x  3 root root 4.0K Feb 12 11:22 loglib
drwxr-xr-x  2 root root  20K Feb 12 00:00 mysql
drwxr-xr-x 10 root root 4.0K Nov  3 15:26 nginx
drwxr-xr-x  8 root root 4.0K Feb  5 12:42 pvuv
drwxr-xr-x 10 root root 4.0K Jan  5 02:00 rpclog
[root@Sp logs]# find ./ -name '*base_product*'
./loglib/Sp/20180211/base_product.log.2018-02-10.gz
./loglib/Sp/20180211/base_product.log.2018-02-08.gz
./loglib/Sp/20180211/base_product.log.2018-02-05.gz
./loglib/Sp/20180211/base_product.log.2018-02-11.gz
./loglib/Sp/20180211/base_product.log.2018-02-09.gz
./loglib/Sp/20180211/base_product.log.2018-02-07.gz
./loglib/Sp/20180211/base_product.log.2018-02-06.gz
複製程式碼
[root@Sp base_product]# ls -lh
total 607M
-rw-r--r-- 1 root root 268M Feb  2 19:05 base_product.log.2018-02-02
-rw-r--r-- 1 root root 216M Feb  3 20:51 base_product.log.2018-02-03
-rw-r--r-- 1 root root 123M Feb  5 11:16 base_product.log.2018-02-05
-rw-r--r-- 1 root root    0 Feb  2 05:36 base_product.log.report.2018-02-02
-rw-r--r-- 1 root root    0 Feb  5 11:17 base_product.log.report.2018-02-05
[root@Sp base_product]# gzip base_product.log.2018-02-0*
[root@Sp base_product]# ls -lh
total 34M
-rw-r--r-- 1 root root  16M Feb  2 19:05 base_product.log.2018-02-02.gz
-rw-r--r-- 1 root root  13M Feb  3 20:51 base_product.log.2018-02-03.gz
-rw-r--r-- 1 root root 6.2M Feb  5 11:16 base_product.log.2018-02-05.gz
-rw-r--r-- 1 root root    0 Feb  2 05:36 base_product.log.report.2018-02-02
-rw-r--r-- 1 root root    0 Feb  5 11:17 base_product.log.report.2018-02-05
[root@Sp base_product]# mv ./base_product.log.2018-02-0*.gz /data/archive/logs/loglib/Sp/20180212/
[root@Sp base_product]# ls -lh
total 0
-rw-r--r-- 1 root root 0 Feb  2 05:36 base_product.log.report.2018-02-02
-rw-r--r-- 1 root root 0 Feb  5 11:17 base_product.log.report.2018-02-05
[root@Sp base_product]# pwd
/data/log/cgi_server/base_product
複製程式碼

相關文章