自动分割Nginx日志教程(可适用于LNMP)

ZephyrXT 发布于 阅读:32

参考了网上一些教程.但是有很多细节错误 所以修正后做个笔记..以防后来者再走弯路

编写每天定时切割 Nginx日志的脚本:

1.创建脚本/home/wwwlogs/cut_nginx_log.sh

在终端内输入:vi /home/wwwlogs/cut_nginx_log.sh

2.输入以下内容 注:日志路径请按照实际路径编写

#!/bin/bash
# This script run at 00:00

# The Nginx logs path
logs_path="/home/wwwlogs/"

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d"yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
/usr/local/nginx/sbin/nginx -s reload

#不推荐使用 kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

编辑完成后按ESC退出编辑模式 然后再输入ZZ即可保存退出

3.赋予 cut_nginx_log.sh 执行权限:

chmod 755 /home/wwwlogs/cut_nginx_log.sh

4.设置crontab,每天凌晨00:00切割 nginx访问日志

crontab -e

  输入以下内容:
00 00 * * * /home/wwwlogs/cut_nginx_log.sh

5.运行crontab -l 检测是否设置定时运行成功

如果显示00 00 * * * /home/wwwlogs/cut_nginx_log.sh则说明已成功设置

注:如果没有crontab 则安装命令为:

yum install vixie-cron

————————第二种简单的分割方法——————

#!/bin/bash
# This script run at 00:00

# The Nginx logs path
mv  /home/wwwlogs/access.log /home/wwwlogs/access_`date +%Y%m%d`.log
/usr/local/nginx/sbin/nginx -s reload

建站 VPS