Nginx日志切割

一、创建脚本

vim /root/project/nginx_logs_task/cut_nginx_log.sh

# /bin/bash
#function@NGINX日志切割

#日志文件备份个数
number=20

#NGINX日志路径
base_path='/usr/local/nginx/logs'

#NGINX日志备份路径
base_path_back_dir='/usr/local/nginx/logs_back'

#创建目录时间 当天时间 例如:2019-03-14
#log_path=$(date -d yesterday +"%Y%m%d") #该参数是创建前一天数据,如需要当天备份,可使用
log_path=$(date  +"%Y%m%d")


#日志创建时间
#date=$(date -d yesterday +"%Y-%m-%d-%H")#该参数是创建前一天数据,如需要当天备份,可使用
date=$(date  +"%Y-%m-%d-%H")


#如果文件夹不存在则创建
if [ ! -d $base_path_back_dir ];
then     
    mkdir -p $base_path_back_dir;
fi

#在NGINX日志备份路径下创建以当天时间命名的目录
mkdir -p $base_path_back_dir/$log_path


#将备份日志
mv $base_path/access.log $base_path_back_dir/$log_path/access_$date.log
mv $base_path/error.log $base_path_back_dir/$log_path/error_$date.log
mv $base_path/status.log $base_path_back_dir/$log_path/status_$date.log

#记录操作日志
echo "mv $base_path/access.log $base_path_back_dir/$log_path/access_$date.log" >> $base_path_back_dir/log.txt
echo "mv $base_path/error.log $base_path_back_dir/$log_path/error_$date.log" >> $base_path_back_dir/log.txt
echo "mv $base_path/status.log $base_path_back_dir/$log_path/status_$date.log" >> $base_path_back_dir/log.txt

#NGINX日志重读
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

#找出需要删除的备份
delfile=`ls -l -crt $base_path_back_dir -F |grep "/$" | awk '{print "/usr/local/nginx/logs_back/" $9}' | head -1`

#判断现在的备份数量是否大于$number
count=`ls -l $base_path_back_dir | grep "^d" | wc -l`
if [ $count -gt $number ]
then
  #删除最早生成的备份,只保留number数量的备份
  rm -rf $delfile
  #写删除文件日志
  echo "rm -rf $delfile" >> $base_path_back_dir/log.txt
fi

二、制定执行计划

vim /root/project/nginx_logs_task/cut_nginx_log.cron

每天凌晨执行一次


0 0 * * * . /etc/profile;/bin/sh /root/project/nginx_logs_task/cut_nginx_log.sh

 

三、加入任务

crontab -l

以前有任务执行 crontab -e 编辑

以前没有任务crontab cut_nginx_log.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

2014Team

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

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

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

打赏作者

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

抵扣说明:

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

余额充值