093实战 Nginx日志切割,以及脚本上传nginx的切割日志

一:日志切割步骤

命令都在root下进行

1.创建目录

  mkdir -p /etc/opt/modules/bin ## 创建文件夹

2.上传cut

  

3.观察目录

  

4.修改的cut文件

  

 5.检测

  需要保证nginx已经开启

  

6.效果

  

7.定时

  

 二:切割程序

1.脚本

 1 #!/bin/bash
 2 
 3 # nginx日志存储的linux路径
 4 LOGS_PATH="/usr/local/nginx/userlogs/"
 5 
 6 # 旧日志存储的linux路径
 7 OLD_LOGS_PATH=${LOGS_PATH}logs/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/$(date -d "yesterday" +"%d")/
 8 
 9 # 创建就日志存储的linux目录, -p如果文件夹存在,不报错
10 mkdir -p ${OLD_LOGS_PATH}
11 
12 # 移动日志文件,nginx的log模块,记录的是文件的句柄,移动文件文件的句柄不会发生变化
13 mv ${LOGS_PATH}access.log ${OLD_LOGS_PATH}access_$(date -d "yesterday" +"%Y%m%d_%H%M%S").log
14 
15 # 关闭nginx服务器,并重启
16 kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

 三:nginx日志脚本的上传

1.上传脚本

  

2.修改脚本

  

3.运行

  

 4.效果

  

四:上传到HDFS的脚本

 1 #!/bin/bash
 2 
 3 #step1:get yesterday format string
 4 # 昨日的日期
 5 yesterday=$(date --date='1 days ago' +'%Y/%m/%d')
 6 
 7 #step2:upload logs to hdfs
 8 # 老日志的存储地方linux的路径
 9 LOGS_PATH=/usr/local/nginx/userlogs/logs/
10 # hdfs日志存储路径
11 HDFS_LOGS_PATH=/eventlogs/${yesterday}
12 
13 # 当执行命令的用户不是hdfs的有权限的操作时候的时候,需要下面这个命令
14 export HADOOP_USER_NAME=beifeng
15 # 创建hdfs路径
16 
17 HADOOP_HOME=/etc/opt/modules/hadoop-2.5.0
18 ${HADOOP_HOME}/bin/hdfs dfs -mkdir -p ${HDFS_LOGS_PATH}
19 # hdfs命令移动
20 ${HADOOP_HOME}/bin/hdfs dfs -put -f -p ${LOGS_PATH}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/$(date -d "yesterday" +"%d")/access_*.log ${HDFS_LOGS_PATH}

  

原文地址:https://www.cnblogs.com/juncaoit/p/6210033.html