nginx日志切割

文章介绍了如何通过编写Shell脚本来实现Nginx的日志切割,并结合Cron定时任务每天零点执行该脚本,以保持日志文件的管理有序。脚本涉及了日志备份、重命名以及使用nginx-sreload优雅地重载配置文件。另外,文中还提到了一种不使用nginx-sreload的替代方法,以避免影响服务器性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.这里使用shell脚本+定时任务的方式对nginx做每日的日志切割

2.查看nginx日志存放目录

cat /etc/nginx/nginx.conf

3.新建日志备份目录

mkdir /var/log/nginx/backup_log

3.编辑日志切割脚本

vi /etc/nginx/backup_log.sh

#!/bin/bash
date=`date +%Y%m%d`
DATE=`date +%Y%m%d%H%M`
mv /var/log/nginx/access.log /var/log/nginx/backup_log  #将当天日志迁移到日志备份目录以达到切割日志的效果
mv /var/log/nginx/backup_log/access.log /var/log/nginx/backup_log/$date"_access.log" #将日志文件名称更改
mv /var/log/nginx/error.log /var/log/nginx/backup_log
mv /var/log/nginx/backup_log/error.log /var/log/nginx/backup_log/$date"_error.log"
nginx -s reload   #优雅的重载nginx配置文件,不执行的话nginx不会生成日志文件
if [ $? == 0 ]; then  #检测重载配置文件是否成功
  echo $DATE":succes" > /var/log/nginx/backup.log
else
  echo $DATE":检查nginx配置文件" > /var/log/nginx/backup.log

或使用以下脚本,两个脚本都可以完成nginx日志的切割

更推荐使用此脚本,因为nginx重载配置文件的时候,对当时节点的资源使用会瞬时翻倍,影响节点性能

#!/bin/bash
date=`date +%Y%m%d`
DATE=`date +%Y%m%d%H%M`
cp /var/log/nginx/access.log /var/log/nginx/backup_log
mv /var/log/nginx/backup_log/access.log /var/log/nginx/backup_log/$date"_access.log"
echo ' ' > /var/log/nginx/access.log    #将access.log中的内容清空
cp /var/log/nginx/error.log /var/log/nginx/backup_log
mv /var/log/nginx/backup_log/error.log /var/log/nginx/backup_log/$date"_error.log"
echo ' ' > /var/log/nginx/error.log    #将error.log中的内容清空

4.给脚本赋予执行权限

chmod +x /etc/nginx/backup_log.sh

5.配置定时任务(配置为每日的凌晨十二点执行切割脚本)

vi /etc/crontab

00 00 * * * /bin/sh /etc/nginx/backup_log.sh

6.配置定时任务生效

crontab /etc/crontab

crontab -l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值