在Nginx中配置日志分割可以通过编写一个简单的shell脚本来实现。以下是一个示例脚本,用于按天分割Nginx访问日志和错误日志:
nginx_log_rotate.sh的脚本文件:#!/bin/bash
# 设置日志文件路径
access_log_path="/var/log/nginx/access.log";
error_log_path="/var/log/nginx/error.log";
# 设置日志文件切割后的存放目录
log_rotate_dir="/var/log/nginx/rotate_logs";
# 获取当前日期
current_date=$(date +"%Y-%m-%d");
# 创建日志切割目录(如果不存在)
mkdir -p $log_rotate_dir;
# 切割访问日志
if [ -f $access_log_path ]; then
mv $access_log_path "${log_rotate_dir}/access.log-${current_date}";
fi
# 切割错误日志
if [ -f $error_log_path ]; then
mv $error_log_path "${log_rotate_dir}/error.log-${current_date}";
fi
# 通知Nginx重新打开日志文件
nginx -s reopen;
chmod +x nginx_log_rotate.sh
crontab -e
0 1 * * * /path/to/nginx_log_rotate.sh
将/path/to/nginx_log_rotate.sh替换为实际的脚本路径。
注意:根据实际情况修改脚本中的日志文件路径和日期格式。