每天自动分割Nginx日志文件的shell脚本

发布时间:2020-12-06编辑:脚本学堂
本文介绍下,用shell脚本实现,每天定时自动分割nginx日志文件,有需要的朋友,参考下。

nginx日志文件进行自动分割,是个不错的主意,这在日常的运行中应当作为一个固定的任务来执行。

本文介绍的方法,把每天的日志文件分割出来,并以时间命名。

首先,创建日志分割脚本

1、登录SSH,创建cut_logs.sh文件
vi /root/cut_logs.sh

内容如下:
 

复制代码 代码示例:
#!/bin/bash
# The Nginx logs path
logs_path="/var/wwwlogs/"
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}www.jb200.com.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/juzihc_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

2、添加cut_logs.sh执行权限
 

复制代码 代码示例:
chmod +x /root/cut_logs.sh

设置cut_logs.sh启动时间,执行命令crontab -e进入编辑状态:
 

复制代码 代码示例:
01 00 * * * /root/cut_logs.sh

设置定时任务:每天0点01分启动。

完成以上二步之后,每天定时分割日志文件就设置成功了。
有兴趣的朋友,可以考虑将日志执行tar压缩,还可以在脚本中设置删除多少天前的文件
这些留给大家自己研究吧。

您可能感兴趣的文章:
nginx 日志分割的小脚本
分享:Logrotate分割nginx日志的脚本
nginx日志配置、Nginx日志分割
Nginx日志按天分割的方法分享(图文)
一个分割ngnix网站日志的Shell脚本