发布时间: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性能监控,文件系统空间使用监控都是有利的。
QmmpLinux音乐播放器中文版 v0.11.2
16.1MB
VisualRouteforLinux14.0L(网络路径结点回溯分析工具)V1.0.0官方版
7.06 MB
DLL函数查看器(免费dll函数查看器工具) v1.3 免费版
1.1M
EasyFileCount(文件大小查看工具) v1.0 免费版
16.7MB
FinalMesh Pro(三维查看转换软件) v1.2.0.329 免费版
8.6M
Free Excel Viewer(Excel文件查看编辑工具) v2.0 官方版
3.3M
adsl密码查看器(宽带密码查看工具)v6.6.2 免费版
331KB
exiftool (图片信息查看工具) v12.28 绿色版
6.34MB
ipscan(zip文件查看器)v1.2 官方版
116.3K
内存型号查看工具(内存查看及编辑软件) v1.17.0.39免费绿色版
3.6M
局域网查看工具(局域网监控软件) 1.75 绿色版
0.33MB
迷你CAD图纸查看器下载
10.54M
ChromeHistoryView下载
181.76 KB
CopyTrans HEIC下载
9.72M
EasyCount下载
16.4M
Quick Picture Viewer下载
3.4M
WizTree中文版
5.1M
centos 下载
3.85GB
usb device下载
1M
2020-02-12
Linux tar备份文件命令详解
内存不能为read修复工具
Linux CentOS7防火墙firewalld使用说明
31-007540扬天功能键盘使用说明书
CentOS安装iRedMail web邮件服务器
docker overlay网络实现
Vista系统中本地连接图标丢失,如何处理?
配置Tomcat修改代码项目自动重新部署
Win10下删除“阿尔巴尼亚语”输入法的方法