博客 / Linux/ Nginx日志自动切割与归档配置教程(按年/月/日目录存储)

Nginx日志自动切割与归档配置教程(按年/月/日目录存储)

Nginx日志自动切割与归档配置教程(按年/月/日目录存储)

Nginx日志自动切割脚本配置指南

本指南将帮助您配置一个自动化的Nginx日志切割脚本。该脚本会按天切割日志,并按年/月/日的目录结构存放,同时自动清理过期日志。

第一步:下载并解压脚本

执行以下命令,将脚本下载到/root/目录并解压,然后进入编辑模式。

cd /root/
wget https://youquso.com/wp-content/uploads/oldimg/2015/08/cut_nginx_logs.tar.gz
tar -xzvf cut_nginx_logs.tar.gz
vi cut_nginx_logs.sh

第二步:编辑脚本配置文件

在vim编辑器中,按i键进入插入模式。找到并修改以下关键参数以适应您的环境:

# 设置Nginx日志文件目录路径(默认是LNMP一键包的路径,请根据实际情况修改)
log_files_path="/home/wwwlogs/"
# 日志文件将按“年/月/”目录结构存放,文件名为“原日志名_年月日.log”
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
# 设置要切割的日志名称(不带.log后缀),多个名称用空格分隔
log_files_name=(access xxx.com)
# 设置Nginx可执行文件路径
nginx_sbin="/usr/local/nginx/sbin/nginx"
# 设置日志保留天数
save_days=30

编辑完成后,按ESC键退出插入模式,输入:wq保存并退出vim。

第三步:配置Crontab定时任务

执行以下命令编辑当前用户的crontab:

crontab -e

i键进入插入模式,添加以下行(例如设置为每天凌晨5点执行):

00 05 * * * /bin/bash /root/cut_nginx_logs.sh

添加完成后,按ESC键退出插入模式,输入:wq保存并退出。

配置完成与验证

至此,脚本已配置完成。系统将在每天05:00自动执行日志切割任务,将日志文件归档到对应的年/月/目录下,并自动删除超过save_days天(默认为30天)的旧日志。

注意:请确保脚本中的log_files_pathnginx_sbin路径与您服务器的实际路径一致。首次配置后,建议手动执行一次脚本以验证其功能:

/bin/bash /root/cut_nginx_logs.sh

发表评论

您的邮箱不会公开。必填项已用 * 标注。