nginx日志磁盘空间使用率100%
记一次linux删除nginx日志的问题
·
nginx日志磁盘空间100%
0、现象
CICD部署失败,连接拒绝
猪齿鱼到gitlab 503
CICD出现137现象
1、问题描述
服务器提示磁盘满了,表现如下:
经查看是nginx服务器,使用 df -h 命令如下:
考虑是被nginx日志撑满,查看日志文件大小
问题确定,所以删除日志。
2、正确删除日志
echo " " > ./error.log
3、错误删除方式、原因、解决方法
- 错误删除方式
使用rm -f删除或者xftp右键删除,删除之后云盘使用率并没有发生变化。 - 原因
在linux中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink),然而如果文件是被打开的(有进程正在使用或者不断写入),那么进程将可以继续读取该文件,磁盘空间也会一直被占用无法释放。nginx日志文件在删除的时候文件正在被使用; - 解决
网上大部分资料说的都是直接重启nginx服务,没用!!!
重启之后,是可以直接生成新的日志文件的,但原本的日志文件占用问题并没有解决
正确方案:重启之后,杀掉使用nginx旧日志文件的进程-
安装lsof
yum install lsof
-
查看使用nginx日志的进程
lsof |grep deleted
[root@local ~]# lsof |grep deleted nginx 4401 nobody 38w REG 253,0 19304448 10835682 /var/nginx/logs/error.log (deleted)
-
解决:kill 4401 即可删除error.log占用的问题。
-
清理正在被读写的大日志文件时,直接使用 echo “” > ./xxx.log 命令,即直接将文件置空,并不影响服务的使用,文件大小也被控制下来,磁盘空间也释放了。
4、重启nginx
-
验证nginx配置文件是否正确
[root@localhost ~]# cd /usr/local/nginx/sbin [root@localhost sbin]# ./nginx -t
-
重启nginx
进入nginx安装目录sbin下,输入命令./nginx -s reload 即可[root@localhost ~]# cd /usr/local/nginx/sbin [root@localhost sbin]# ./nginx -s reload
更多推荐
已为社区贡献1条内容
所有评论(0)