被告知服务器磁盘空间不足,一开始不知道为啥。
经过排查,发现catalina.out十足有30G+(我的天哪,这么多,吓死宝宝了)
想在不重启服务器的情况下清空catalina.out
特此记录一下
首先查看磁盘占用情况
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 50G 11M 99% /
devtmpfs 1.9G 0 1.9G 0% /dev
......
然后逐层查看到底具体哪个文件夹内容多
du -h --max-depth=1 /*****
–max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
后面加上 | sort -n 可以对文件大小进行排序,但是-h是只针对数字的,M和K,G没法区别对待
du -h --max-depth=1 /usr/local/apache-tomcat-8.5.30/logs/*
12K /usr/local/apache-tomcat-8.5.30/logs/catalina.2018-04-23.log
16K /usr/local/apache-tomcat-8.5.30/logs/catalina.2018-08-01.log
8.0K /usr/local/apache-tomcat-8.5.30/logs/catalina.2018-10-18.log
16K /usr/local/apache-tomcat-8.5.30/logs/catalina.2019-01-14.log
30G /usr/local/apache-tomcat-8.5.30/logs/catalina.out
......
查看具体文件大小
df -h /usr/local/apache-tomcat-8.5.30/logs/catalina.out
30G catalina.out
对文件内容清空
cd /usr/local/apache-tomcat-8.5.30/logs/
echo "">catalina.out
ps
如果需要列出符合要求的文件
ll 2019-*.log
如果需要对某一文件夹下面符合要求的文件进行删除
-type d( 目录 ),f( 普通文件 )
-name filename
查找名为filename的文件
-mtime -n/+n
按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n/+n
按文件访问时间来查
rm -rf
-f
强制删除文件或目录
-r
递归处理, 将指定目录下的所有文件与子目录一并处理
-i
删除已有文件或目录之前先询问用户
找到 /usr/local/apache-tomcat-8.5.30/logs/ 目录下的一级文件,名以2019开头且180多天没修改过的目录进行删除操作
-exec ls -l {} ;
表示列出
find /usr/local/apache-tomcat-8.5.30/logs/ -maxdepth 1 -type d -mtime +180 -name "2019*" -exec rm -rf {} \;
如果对查找文件需要排序展示
ls -lt: 根据文件修改时间排序,最新的在前面
-l use a long listing format 以长列表方式显示(详细信息方式)
-t sort by modification time 按修改时间排序(最新的在最前面)
-r reverse order while sorting (反序)
ls -ult:加上参数u表示 按文件访问时间排序,最新的在前面
使用命令:find / -name test
这样会打印出一堆没有权限查询的文件路径,影响查看。
更改后:find / -name test 2>/dev/null