温馨提示×

怎样用Nginx配置日志分割

小樊
33
2026-01-05 08:58:48
栏目: 编程语言

在Nginx中配置日志分割可以通过编写一个简单的shell脚本来实现。以下是一个示例脚本,用于按天分割Nginx访问日志和错误日志:

  1. 首先,创建一个名为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;
  1. 为脚本添加可执行权限:
chmod +x nginx_log_rotate.sh
  1. 将脚本添加到cron定时任务中,以便每天自动执行。编辑crontab配置文件:
crontab -e
  1. 在打开的编辑器中,添加以下行以每天凌晨1点执行日志分割脚本:
0 1 * * * /path/to/nginx_log_rotate.sh

/path/to/nginx_log_rotate.sh替换为实际的脚本路径。

  1. 保存并退出编辑器。现在,Nginx日志将每天自动分割并存放在指定的目录中。

注意:根据实际情况修改脚本中的日志文件路径和日期格式。

0