Nginx 的日志切割和备份

摘要:nginx 的日志切割和备份,生成环境中的 access 日志会非常庞大,我们有必要进行定期的切割和备份,便于后期的分析处理。

日常工作中对 nginx 的访问日志分析很重要,但是对于访问量很大的网站,日志的增长速度也是非常快的,需要指定时间去对日志切割和分析处理。比如实现一个定时任务,去处理 nginx 的日志等。

备份好的日志也可以到迁移到别的服务器,切割备份好的日志更加的容易分析。

以下是一个 access 日志备份脚本,我们可以写一个 crontab 定时任务,然后在服务器不忙的时候,比如凌晨 2、3 点,来定期备份日志。

#!/bin/bash
# nginx 日志路径
LOGS_PATH=/usr/local/nginx/logs/

# 昨日的时间 比如 2019-10-22
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)

# nginx 备份日志路径
BACKUP_LOGS_PATH=/usr/local/nginx/logs/access_backup/${YESTERDAY}

# 备份日志统一放到一个日期文件夹中
mkdir -p ${BACKUP_LOGS_PATH}

# 备份的日志,这里可以有很多个备份日志
mv ${LOGS_PATH}/access.log ${BACKUP_LOGS_PATH}/access_${YESTERDAY}.log

# 重启 nginx 生成新的日志文件
/usr/local/nginx/sbin/nginx -s reopen

这个脚本主要就是利用了 nginx 关闭重启后会生成新的日志,这样我们可以把日志剪切出去,然后重启 nginx 服务后,就会有新的日志生成。正常来讲日志应该每天或者每周一备份,这要根据日志增长量来判断。

结束语:感谢您对本网站文章的浏览,欢迎您的分享和转载,但转载请说明文章出处。
Top