系统日志是一个很重要的东西,但同时如果Nginx日志文件不定期清理,会变得越来越大,空间就会给日志占完了,影响Nginx服务器的运行,下面我来介绍定期删除日志的实现方法,各位同学可参考。
Nginx的日志文件累积的太多,最后充满了整个磁盘空间,所以昨天做了一个可以定期自动删除的脚本(dellogs.sh
)。
#!/bin/bash
find
/usr/local/nginx/logs/
-mtime +15 -
type
f -name *.log |
xargs
rm
-f
上述脚本是将nginx/logs下面的15天之前的日志文件删除,可以参考上面的脚本删除其他程序(如PHP、Tomcat)的日志文件。不过使用脚本的时候需要将Nginx的日志文件进行自动分割,否则会删除正在写入的日志文件了。
Linux下定时分割Nginx日志的脚本(clear_log.sh):
- #!/bin/bash
- #
- #Nginx Log 存放的路径Path
- logs_path="/data1/logs/"
- mkdir -p ${logs_path}$(date -d "%Y")/$(date -d "%m")/
- mv ${logs_path}access.log ${logs_path}$(date -d "%Y")/$(date -d "%m")/access_$(date -d "%Y%m%d").log
- kill -USR1 'cat /usr/local/nginx/nginx.pid'
将脚本保存并使用chmod +x 命令指定可执行权限,最好还需要加入任务列表中(每天凌晨一点执行):
[root@localhost ~]# crontab -e
00 01 * * *
/bin/bash
/root/shell/dellogs.sh
00 01 * * *
/bin/bash
/root/shell/clear_log
.sh
[root@localhost ~]
# service crond restart