Nginx日志切割
随着访问量的增长,日志文件会越来越大,时间长既会影响访问的速度,也会占用一部分磁盘空间,下面介绍一种方法,按天切割access和error日志。
一、进行日志切割
vi cut_nginx_logs.sh
#!/bin/bash
# 获取日期
d=$(date +%Y-%m-%d)
# 定义存储目录
dir="/usr/local/openresty/nginx/logs"
# 定义需要分割的源日志
logs_file='/usr/local/openresty/nginx/logs/access.log'
logs_error='/usr/local/openresty/nginx/logs/error.log'
# 定义nginx的pid文件
pid_file='/usr/local/openresty/nginx/logs/nginx.pid'
if [ ! -d "$dir" ]
then
mkdir $dir
fi
# 移动日志并重命名文件
mv ${logs_file} ${dir}/access_${d}.log
mv ${logs_error} ${dir}/error_${d}.log
# 发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件
kill -USR1 $(cat ${pid_file})
PS:这里将脚本放在了home目录下,可根据实际情况存放脚本
这里没设置删除删除原有日志文件,可根据实际情况自行设置
二、添加定时任务
这里设置的每两天执行一次切割任务
crontab -e
59 23 */2 * * /home/sh/cut_nginx_logs.sh
crontab -l # 查看定时任务情况