Linux下定时切割Nginx访问日志并打包压缩的Shell脚本

来源:互联网 发布:用户画像 都用什么算法 编辑:程序博客网 时间:2024/05/27 20:15

之前写过这篇文章,但是由于上次的数据丢失故障这篇日志没有了。于是我又重新写了这个脚本,再次贴出来,给大家。

#!/bin/bashlogs_path=/home/logs/www/arch_log_path=${logs_path}$(date -d "yesterday" +"%Y%m/%d")/mkdir -p ${arch_log_path}cd ${logs_path}for i in `ls *.access.log`do        tar zcf ${i}.tar.gz -C ${logs_path} ${i}        mv ${i}.tar.gz ${arch_log_path}        rm -rf ${i}donekill -USR1 `cat /usr/local/nginx/nginx.pid`


使用时注意修改logs_path为你自己的Nginx访问日志目录。我的Nginx是按照虚拟主机分列访问日志的,每个日志文件的格式如localhost.access.log,该脚本会匹配日志目录下的所有*.access.log文件,打包压缩后移动到 年月/日 目录下面。大家可以根据自己需要再行调整。设置成功后在crontab里面加入定时计划。

sudo crontab -e

启动VI编辑器,输入以下内容:

 0 0 * * * /path/to/cut_nginx_log.sh

其中最后一部分请修改成你的切割脚本所在的路径。定时器设定在每天0时归档昨天的日志。

原创粉丝点击