简单实现 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
声明:除非注明,常阳时光文章均为原创
本文地址:https://cyhour.com/694/
转载时必须以链接形式注明原始出处。
Views: 460 Tags:  ,  , 

Comments:0

发表留言

炒蛋:Vultr 送$25 | 搬瓦工年付$19补货,优惠码 BWH26FXH3HIQ | 推荐VPS信息