nginx日志切割

Nginx 日志切割-手动

现有的日志都会存在 access.log 文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把

文件切割为多份不同的小文件作为日志,切割规则可以以 天 为单位,如果每天有几百G或者几个T的日志的话,则可以按需以 每半天 或者 每小时 对日志切割一

具体步骤如下:

1. 创建一个shell可执行文件: cut_my_log.sh ,内容为:

#!/bin/bash

LOG_PATH="/var/log/nginx/"

RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)

PID=/var/run/nginx/nginx.pid

mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log

mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log

#向Nginx主进程发送信号,用于重新打开日志文件

kill -USR1 `cat $PID`

2. 为 cut_my_log.sh 添加可执行的权限:

chmod +x cut_my_log.sh

3. 测试日志切割后的结果:

./cut_my_log.sh


Nginx 日志切割-定时

使用定时任务

1. 安装定时任务:

yum install crontabs

2. crontab -e 编辑并且添加一行新的任务:

*/1 * * * * /usr/local/nginx/sbin/cut_my_log.sh

3. 重启定时任务:

service crond restart

附:常用定时任务命令:

service crond start //启动服务

service crond stop //关闭服务

service crond restart //重启服务

service crond reload //重新载入配置

crontab -e // 编辑任务

crontab -l // 查看任务列表

常用表达式:

每分钟执行:

*/1 * * * *

每日凌晨(每天晚上23:59)执行:

59 23 * * *

每日凌晨1点执行:

0 1 * * *


参考文献:

每天定时为数据库备份:https://www.cnblogs.com/leechenxiang/p/7110382.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、日志手动切割 1.找到nignx所在位置:whereis nginx 2.在sbin目录下创建一个shel...
    蓝色Hippie阅读 236评论 0 0
  • 前几天查看了下nginx的日志文件access.log,发现居然有二十几个G了! 于是准备使用Shell脚本的方式...
    就没一个昵称能用阅读 1,167评论 0 4
  • nginx的访问日志如果不做切割默认都是保存在一个文件里面的,如果网站出现问题或者故障,要从几个G的日志文件里面查...
    CUFFS阅读 622评论 0 0
  • Nginx日志切割 方法1(脚本+定时执行): #step1:加脚本 cut_nginx_log.sh,主进程把U...
    heaven_touch阅读 10,954评论 0 3
  • #!/bin/bash #原nginx日志存放路径 log_files_path="/home/wwwlogs/"...
    SkTj阅读 347评论 0 0