Nginx按天生成log并定期定理

本文介绍了一个用于自动化管理Nginx日志的Shell脚本,该脚本每天0点生成带时间戳的日志文件,并清理超过30天的旧日志,同时重启Nginx服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每天0点生成一个带时间的文件,并删除30之前的log文件。

#!/bin/bash
#function:cut nginx log files
 
#set the path to nginx log files
log_files_path="/xxx/nginx/logs/"
log_files_dir=${log_files_path}
 
#set nginx log files you want to cut
log_files_name=(access )
error_files_name=(error )
 
#set the path to nginx.
nginx_sbin="/xxx/nginx/sbin/nginx"
 
#Set how long you want to save
save_days=30
############################################
#Please do not modify the following script #
############################################
#mkdir -p $log_files_dir
log_files_num=${#log_files_name[@]}
error_files_num=${#error_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]}_$(date -d "yesterday" +"%Y-%m-%d").log
done
for((i=0;i<$error_files_num;i++));do
    mv ${log_files_path}${error_files_name[i]}.log ${log_files_dir}${error_files_name[i]}_$(date -d "yesterday" +"%Y-%m-%d").log
done
 
#delete 30 days ago nginx log files
find $log_files_path -mtime +$save_days -name "*.log" -exec rm -rf {} \; 

#restart nginx
$nginx_sbin -s reload

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值