【脚本】Nginx日志分割进阶版,无需考虑脚本路径


前言

本博客内容仅为记录博主思路,仅供参考,一切以自己实践结果为准。


一、Nginx日志分割(解释版)

#!/bin/bash
# effect: 将成功连接的日志分割出来,按照日期排序存放,方便查阅管理
#####函数部分#####
logs_nginx_access {												#定义日志分割函数
day=$(date -d "-1 day" "+%Y%m%d")								#定义时间变量:获取前一天的日期
logs_path="/var/log/nginx"										#定义路径变量:确定分割后的日志存放路径
pid_path="/usr/local/nginx/logs/nginx.pid"						#获取pid号:获取nginx进程的pid号

[ -d $logs_path ] || mkdir -p $logs_path 						#通过-d判断存放日志目录是否存在,不存在则创建
mv /usr/local/nginx/logs/access.log ${logs_path}/han.com.access.$day
																#通过mv移动日志文件并重命名,归纳管理
kill -USR1 $(cat $pid_path)										#通过kill -USR1 pid号平滑重载Nginx服务,重新创建日志文件
find $logs_path -mtime +30 -exec rm -rf {} \;					#通过find查找30天以上的日志,在经过-exec传参删除

path=`pwd`
name=`echo $0`
pathtest=`echo $0 |cut -d/ -f 1`

if [ "$pathtest" == "." ];then
name=`echo $0 |cut -d/ -f 2-`
fi

(crontab -l;echo "0 1 * * * $path/$name")| crontab
chmod +x $path/$name
}
#####脚本主题#####
logs_nginx_access												#调用日志分割函数

二、Nginx日志分割(纯净版/进阶)

#!/bin/bash
# effect: 将成功连接的日志分割出来,按照日期排序存放,方便查阅管理
#####函数部分#####
logs_nginx_access() {
day=$(date -d "-1 day" "+%Y%m%d")
logs_path="/var/log/nginx"
pid_path="/usr/local/nginx/logs/nginx.pid"

[ -d $logs_path ] || mkdir -p $logs_path
mv /usr/local/nginx/logs/access.log ${logs_path}/han.com.access.$day

kill -USR1 $(cat $pid_path)
find $logs_path -mtime +30 -exec rm -rf {} \;

path=`pwd`
name=`echo $0`
pathtest=`echo $0 |cut -d/ -f 1`

if [ "$pathtest" == "." ];then
    name=`echo $0 |cut -d/ -f 2-`
fi

(crontab -l;echo "0 1 * * * $path/$name")| crontab
chmod +x $path/$name
}
#####脚本主题#####
logs_nginx_access

三、结语

  • 易错点:该脚本只提取了成功链接的日志,若需要更多日志,自行添加MV定义即可
  • 事故点:crontab免交互记得先把之前的周期脚本列出来,不然会覆盖之前的周期性脚本
  • 知识点:考虑了执行脚本的方法不同,$0的值不同,因此根据$0的值判断出路径,用cut去除相对路径的./字符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪碧不要气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值