2020-04-04 17:45:37
在日常的Linux巡检中,我们会遇到文件系统目录使用空间很高的情况,例如如下利用”df -h “查看到根目录空间使用超过80%。而我们仅仅知道是根目录空间使用过高,这样是不够的。还需要知道是目录还是文件让根目录空间使用过高。通常我们使用的命令是”du -sh *”。
第一步:查看Linux系统的文件系统使用情况,如下可以看到根目录”/”已经使用81%。
[root@hostname ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 67G 51G 13G 81% /
tmpfs 16G 152K 16G 1% /dev/shm
/dev/sda3 99G 188M 94G 1% /arch
/dev/sda1 197G 188M 187G 1% /u01
/dev/sda2 197G 50G 138G 27% /u02
第二步:进入根目录,利用du -sh 命令查询各个目录或者文件占用空间的情况,因为/u02是独立的文件系统,所以可以忽略。我们关注的是root这个目录,占用了空间47G。
[root@hostname ~]# cd /
[root@hostname /]# du -sh *
20K arch
7.6M bin
27M boot
324K dev
36M etc
36K home
136M lib
26M lib64
16K lost+found
4.0K media
0 misc
4.0K mnt
0 net
8.0K opt
4.0K orbit-root
--省略/proc目录统计的报错
0 proc
47G root ##根目录文件系统使用最大的目录
15M sbin
0 selinux
4.0K srv
0 sys
80K tmp
20K u01
49G u02
第三步:进入root目录,其实也是root用户的主目录。我们从ls命令可以猜到可能是【apache-tomcat-6.0.36-linux】这个tomcat的程序目录占用比较多。
[root@hostname /]# cd root
[root@hostname ~]# ls
anaconda-ks.cfg apache-tomcat-6.0.36-linux Desktop Documents Downloads install.log install.log.syslog Music Pictures Public Templates Videos
第四步:通过统计发现,确实是【apache-tomcat-6.0.36-linux】这个目录占用了47G。但是到此问题还没有结束,因为既然是应用程序的目录,根据我的经验很可能是tomcat的日志文件占用空间比较多。
[root@hostname ~]# du -sh *
4.0K anaconda-ks.cfg
47G apache-tomcat-6.0.36-linux
4.0K Desktop
4.0K Documents
4.0K Downloads
56K install.log
12K install.log.syslog
4.0K Music
4.0K Pictures
4.0K Public
4.0K Templates
4.0K Videos
第五步:既然看到有tomcat的目录,很可能这个tomcat运行着,利用ps命令查看是否有tomcat的进程,一般可以过滤java这个关键词。如下,果然有tomcat在运行着。那么很可能占用空间最多就是tomcat的日志文件。
[root@hostname ~]# ps -ef|grep java
root 4879 4836 0 08:26 pts/0 00:00:00 grep java
root 11864 1 47 Aug16 ? 26-03:11:29 /usr/bin/java -Djava.util.logging.config.file=/root/apache-tomcat-6.0.36-linux/conf/logging.properties -Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/root/apache-tomcat-6.0.36-linux/endorsed -classpath /root/apache-tomcat-6.0.36-linux/bin/bootstrap.jar -Dcatalina.base=/root/apache-tomcat-6.0.36-linux -Dcatalina.home=/root/apache-tomcat-6.0.36-linux -Djava.io.tmpdir=/root/apache-tomcat-6.0.36-linux/temp org.apache.catalina.startup.Bootstrap start
第六步:进入tomcat的程序目录,查看哪个目录占用的空间最大。如下,发现是一个【fare】的目录占用了46G,而【logs】是日志目录却占用了23M。
[root@hostname ~]# cd apache-tomcat-6.0.36-linux
[root@hostname apache-tomcat-6.0.36-linux]# ls
backup bin conf fare lib LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt temp webapps work
[root@hostname apache-tomcat-6.0.36-linux]# du -sh *
92K backup
882M bin
108K conf
46G fare
6.8M lib
40K LICENSE
23M logs
4.0K NOTICE
12K RELEASE-NOTES
16K RUNNING.txt
7.9M temp
188M webapps
7.1M work
第七步:继续一探究竟【fare】目录里面到底存放的是什么类型的目录或者文件。如下看到有很多类似日志文件,如common.log和pricing.log。通过和开发人员沟通之后,确定确实日志文件。
[root@hostname apache-tomcat-6.0.36-linux]# cd fare
[root@hostname fare]# ls
common.log common.log.2017-09-21 common.log.2017-10-03 pricing.log.2017-09-10 pricing.log.2017-09-22 pricing.log.2017-10-04
common.log.2017-09-10 common.log.2017-09-22 common.log.2017-10-04 pricing.log.2017-09-11 pricing.log.2017-09-23 pricing.log.2017-10-05
common.log.2017-09-11 common.log.2017-09-23 common.log.2017-10-05 pricing.log.2017-09-12 pricing.log.2017-09-24 pricing.log.2017-10-06
common.log.2017-09-12 common.log.2017-09-24 common.log.2017-10-06 pricing.log.2017-09-13 pricing.log.2017-09-25 pricing.log.2017-10-07
common.log.2017-09-13 common.log.2017-09-25 common.log.2017-10-07 pricing.log.2017-09-14 pricing.log.2017-09-26 pricing.log.2017-10-08
common.log.2017-09-14 common.log.2017-09-26 common.log.2017-10-08 pricing.log.2017-09-15 pricing.log.2017-09-27 pricing.log.2017-10-09
common.log.2017-09-15 common.log.2017-09-27 common.log.2017-10-09 pricing.log.2017-09-16 pricing.log.2017-09-28 spring.log
common.log.2017-09-16 common.log.2017-09-28 common.zip pricing.log.2017-09-17 pricing.log.2017-09-29 struts2.log
common.log.2017-09-17 common.log.2017-09-29 framework.log pricing.log.2017-09-18 pricing.log.2017-09-30 xwork2.log
common.log.2017-09-18 common.log.2017-09-30 hibernate.log pricing.log.2017-09-19 pricing.log.2017-10-01
common.log.2017-09-19 common.log.2017-10-01 hibernate.log.2017-01-03 pricing.log.2017-09-20 pricing.log.2017-10-02
common.log.2017-09-20 common.log.2017-10-02 pricing.log pricing.log.2017-09-21 pricing.log.2017-10-03
第八步:继续查看哪个目录或者文件占用的空间最大,发现都是common.log和pricing.log相关的文件占用的空间最大,都是700M以上。至此,已经查明占用根目录”/”空间最多的原因是tomcat的日志文件太多,而且每一个日志文件都很大。
[root@hostname fare]# du -sh *|sort -h
0 framework.log
0 hibernate.log.2017-01-03
0 spring.log
0 struts2.log
0 xwork2.log
4.0K hibernate.log
17M common.zip
215M pricing.log
216M common.log
667M pricing.log.2017-10-08
668M common.log.2017-10-08
674M common.log.2017-10-05
674M pricing.log.2017-10-05
678M common.log.2017-10-07
678M pricing.log.2017-10-07
679M common.log.2017-10-06
679M pricing.log.2017-10-06
683M common.log.2017-10-04
683M pricing.log.2017-10-04
690M pricing.log.2017-09-10
691M common.log.2017-09-10
711M common.log.2017-09-12
711M pricing.log.2017-09-12
719M pricing.log.2017-09-11
720M common.log.2017-09-11
737M common.log.2017-09-30
737M pricing.log.2017-09-28
737M pricing.log.2017-09-30
738M common.log.2017-09-28
742M common.log.2017-09-29
742M pricing.log.2017-09-29
744M pricing.log.2017-10-09
745M common.log.2017-10-09
751M common.log.2017-10-01
751M pricing.log.2017-10-01
754M common.log.2017-09-13
754M pricing.log.2017-09-13
760M common.log.2017-10-03
760M pricing.log.2017-10-03
783M pricing.log.2017-10-02
784M common.log.2017-10-02
791M pricing.log.2017-09-18
792M common.log.2017-09-18
797M common.log.2017-09-27
797M pricing.log.2017-09-27
804M common.log.2017-09-17
804M common.log.2017-09-19
804M pricing.log.2017-09-17
804M pricing.log.2017-09-19
808M common.log.2017-09-26
808M pricing.log.2017-09-26
815M pricing.log.2017-09-24
816M common.log.2017-09-24
821M common.log.2017-09-14
821M pricing.log.2017-09-14
821M pricing.log.2017-09-23
822M common.log.2017-09-23
826M common.log.2017-09-25
826M pricing.log.2017-09-25
827M common.log.2017-09-16
827M pricing.log.2017-09-15
827M pricing.log.2017-09-16
828M common.log.2017-09-15
831M common.log.2017-09-22
831M pricing.log.2017-09-22
851M common.log.2017-09-21
851M pricing.log.2017-09-21
860M common.log.2017-09-20
860M pricing.log.2017-09-20
第九步:从文件的命令规律,可以看出日志文件日期保留一个月,检查root用户是否有定时删除日志文件计划。如下命令查看所示,确实有每天凌晨03:15进行日志文件删除的计划。但是由于日志文件太多和根目录空间大小原因,导致根目录空间使用比例过高。在有部署自动监控工具,如zabbix等,会自动发送告警。
[root@hostname ~]# crontab -l
15 3 * * * /u02/shell/rm_log_pricing.sh
[root@hostname ~]# cat /u02/shell/rm_log_pricing.sh
find /root/apache-tomcat-6.0.36-linux/bin/fare/ -name "common.log.2*" -mtime +30 | xargs rm -f
find /root/apache-tomcat-6.0.36-linux/bin/fare/ -name "pricing.log.2*" -mtime +30 | xargs rm -f
总结:
从运维的角度,不建议tomcat等应用程序部署在和Linux操作系统相关的文件系统中,尤其是直接部署在根目录下。一般都建议使用独立的文件系统来部署应用程序,无论从IO性能监控,文件系统空间使用监控都是有利的。
Linux查看网卡实时流量软件
04-11
Linux Apache开启gzip压缩提高网页下载速度
07-15
Linux alias设置指令的别名命令详解
07-18
Linux aumix设置音效装置命令详解
07-05
Linux kill删除执行中的程序或工作命令详解
07-24
Linux lsmod显示已载入系统的模块命令详解
07-24
Linux screen多重视窗管理程序命令详解
07-05
Linux vsftpd启动,停止,重启脚本
07-23
Linux 的系统服务及其配置
07-07
Linux中grep命令的12个实践例子
05-15
Linux启动过程详解
07-17
Supervisor安装与配置(Linux/Unix进程管理工具)
05-29
查看当前Windows操作系统秘钥的方法(Win7 Win8/8.1 Win10)
04-14
Android Studio 查看源码出现throw new RuntimeException("Stub!"); 解决办法
07-03
Bouyei.Geo 1.0 GIS 空间格式处理解析发布
04-26
C盘可用空间越来越小问题的处理思路
03-25
E30E40E50如何通过F5查看摄像头
05-17
LINXU | 在虚拟机里调整LVM逻辑卷的空间大小
03-30
QQ面板上的空间、微博、邮箱等小按钮点击无反应,无网页弹出
04-09
ThinkPad E440 E540关机情况下电池掉电
04-05
QmmpLinux音乐播放器中文版 v0.11.2
16.1MB
下载ChromeHistoryView(谷歌浏览器数据查看软件)V1.3.6.0 官方版
181.76 KB
下载DLL函数查看器(免费dll函数查看器工具) v1.3 免费版
1.1M
下载EasyCount(文件夹大小查看工具) v1.0.9.6 免费版
16.4M
下载adsl密码查看器(宽带密码查看工具)v6.6.2 免费版
331KB
下载ipscan(zip文件查看器)v1.2 官方版
116.3K
下载内存型号查看工具下载
3.6M
下载局域网查看工具下载
0.33MB
下载迷你CAD图纸查看器 v3.2.1.0 官方版
10.54M
下载CopyTrans HEIC下载
9.72M
下载EasyFileCount下载
16.7MB
下载FinalMesh下载
8.6M
下载Free Excel Viewer下载
3.3M
下载Quick Picture Viewer下载
3.4M
下载WizTree下载 v3.30绿色版
5.1M
下载centos(Linux操作系统) 6.4 最新版
3.85GB
下载exiftool下载
6.34MB
下载usb device下载
1M
下载visualroute
7.06 MB
下载