Nginx日志切割Shell脚本

本文介绍了一个用于自动化切割Nginx日志文件并定期清理旧日志的shell脚本,通过创建计划任务每天执行脚本来实现日志文件的自动管理和归档,以保持日志系统的高效运行。

为了解决nginx日志不会自动切割的问题,减少日志文件大小,并定期清理日志数量。

1、新建脚本内容,并保存为xxx.sh

#设置nginx日志文件目录路径
log_files_path="/data/wwwlogs/"
#日志文件将会存放到/data/wwwlogs/年/月/日志文件名_年月日.log
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
#设置要切割的日志的名字,如果日志目录下面的日志文件名为vpser.net.log,则填写vpser.net,每个日志名用空格分隔
log_files_name=(access trend.access trend_ipower001.access weixin.access)
#设置nginx文件的位置
nginx_sbin="/usr/local/nginx/sbin/nginx"
#设置日志保存的时间,天
save_days=30
 
############################################
#Please do not modify the following script #
############################################
mkdir -p $log_files_dir
 
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]}_$(date -d "yesterday" +"%Y%m%d").log
done
 
#delete 30 days ago nginx log files
find $log_files_path -mtime +$save_days -exec rm -rf {} \;
 
$nginx_sbin -s reload

2、增加计划任务,执行crontab -e

输入00 00 * * * /bin/bash /xxx/xxx.sh 每天0点整开始切割脚本。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值