/home 20G 20G 0G 100% /
原因分析:
#出现这种情况一般分为两种
1、系统、软件运行产生的日志、数据库临时备份文件等空间占用
#查看哪儿个目录占用较高(可以查到占用目录)停止运行的软件删除日志,重启软件
du -h -x --max-depth=1 /home
2、/home 或 / 目录 100%
#查看哪儿个目录占用较高(无法查到占用目录)
du -h -x --max-depth=1 /home
#查看已经删除目录的进程,这种情况一般是相关目录还有进程在写入数据,同时我们进行了删除相关的操作,导致进程后台对相关目录锁定,磁盘空间未释放
lsof -M|grep deleted
kill -9 19462 #(锁定空间进程)
#当前进程中kill掉所有符合条件的进程
lsof -M|grep deleted |grep -v grep|cut -c 9-15|xargs kill -9
若杀死该进程后使用 lsof -M|grep deleted #查看这些进程 发现进程改变了进程号继续锁定空间,请检查是否有多个软件同时使用一个日志目录。强制kill -9 软件或关闭所有软件再进行杀死该进程
总结:在apache、tomcat、nginx运行过程中产生大量的日志,当我们的开发人员清除这些日志时一个或多个apache、tomcat、nginx还在运行,继续在删除文件内写入日志。我们通过rm -rf 命令删除了access.log后,apache依然写日志到access.log中,当开启apache进程时,已经通过access.log定位到该文件的inode了,就是说再写日志是不通过access.log,因此即使删除了access.log,apache依然写日志到access.log所在的inode节点,所以导致硬盘空间增加。这样就造成了进程锁死磁盘空间造成删除文件无法释放空间
清理生产环境中间件日志建议使用:
#输入空到相关文件,可以是绝对路径下的文件如 /home/work/tomcat/log/access.log
echo “ ” > access.log