直接删除 nginx 日志文件导致的无法写入问题

就昨天的话题 磁盘已满但 du -h 文件和目录的磁盘使用空间并不大的原因,如果文件被程序占用,直接删除文件除了并不会释放磁盘空间外,还导致一个问题:无法写入。

今天迁了一台服务器,有一脚本定时切割 nginx 的 access.log,即 mv 走。发现移走后不再产生新的日志文件,重启 nginx 后重新生成了,过一会又不生成了。经检查不是目录权限的问题,正郁闷之时想到昨天的总结

直接删除文件但仍被程序所占用

问题还在于切割日志的脚本

mv $LOGPATH $BACKPATH/$(date +%Y%m%d_%H%M).access.log
kill -USR1 `cat /run/nginx.pid`

由于更换了服务器,nginx 的 pid 文件位置发生了变化(nginx.pid 文件的位置到 nginx.conf 中去找配置),所以第二行 kill -USER1 并未执行成功,也就是没有解除原日志文件的占用,nginx 仍然向已被删除的文件写入,因此不会产生新的日志文件,问题找到了便解决了。

本作品采用《CC 协议》,转载必须注明作者和本文链接
welcome come back
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
95
粉丝
24
喜欢
156
收藏
347
排名:323
访问:2.9 万
私信
所有博文
社区赞助商