简单实现 nginx 访问日志按天分割&定期删除

0 Comment

有两种方法,一是 cronolog,二是 crontab 加 sh 脚本简单实现。

这里选择使用 crontab 加 sh 脚本简单实现。脚本如下:

#!/bin/bash
#日志路径
log_files_path="/home/wwwlogs/"
log_files_dir=${log_files_path}
#需要分割日志文件名称 如文件名称是 cyhour.com.log
log_files_name=(cyhour.com)
#nginx 路径
nginx_sbin="/usr/local/nginx/sbin/nginx"
#日志保存多少天
save_days=22
#下面无需修改
log_files_num=${#log_files_name[@]}

#cut nginx log files
for((i=0;i<$log_files_num;i++));do
mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}${log_files_name[i]}.log_$(date -d "yesterday" +"%Y-%m-%d")
done

#定期删除文件 save_days
find $log_files_path -mtime +$save_days -exec rm -rf {} \; 

#重启 nginx
$nginx_sbin -s reload

保存为 cut_nginx_access_logs.sh 文件,上传到 root 目录下。赋予执行权限:

chmod +x cut_nginx_access_logs.sh

添加 crontab 任务

crontab -e

文件最后添加下面代码(每天0点执行脚本)

0 0  * * * /root/cut_nginx_access_logs.sh

然后重启一下 crontab 即可

service crond restart

快报:Vultr 最新活动,充 $5 送 $25,可以用 $2.5 套餐 VPS 一年,活动即将结束,快上车【点击查看】| 搬瓦工年付 $19 中国直连线路补货,优惠码:BWH1ZBPVK,『点击直达』| 京东优惠券:每天可领
声明: 除非注明,常阳时光文章均为原创,转载请以链接形式标明本文地址
本文地址:https://cyhour.com/694/
Views: 244 Tags:  ,  , 

Comments:0

发表留言

彩蛋:Vultr 充 $5 送 $25,活动即将结束,快上车【点击查看】| 搬瓦工年付 $19 中国直连补货,优惠码:BWH1ZBPVK,『点击直达』| 京东优惠券:每天可领