日志通过脚本导入到HDFS当中

承接上一个文档《js页面触发chargeRequest事件和Nginx获取日志信息

利用shell脚本定时备份日志数据到HDFS上(适合日志数据比较少的时候)

时间命令

<code>date +

"%Y%m%d"

今天的日期 date -d

"1 day ago"

+

"%Y%m%d"

昨天的日期 date -d

"-1 day"

+

"%Y%m%d"

昨天的日期/<code>


获取昨天的日志:

<code>mv access.

log

20200128

access.

log

/<code>


在nginx目录下创建一个目录:

<code>

mkdir

>
日志通过脚本导入到HDFS当中

创建脚本:

<code>

vi

cut_nginx_log

.sh

/<code>

授权

<code>

chmod

755

cut_nginx_log

.sh

/<code>
日志通过脚本导入到HDFS当中

代码编写

日志通过脚本导入到HDFS当中

测试执行

日志通过脚本导入到HDFS当中

日志剪切走了

日志通过脚本导入到HDFS当中

再创建一个脚本:

<code>

vi

put_log_hdfs

.sh

/<code>

授权

<code>

chmod

755

put_log_hdfs

.sh

/<code>
日志通过脚本导入到HDFS当中

编写脚本内容

日志通过脚本导入到HDFS当中

测试执行

日志通过脚本导入到HDFS当中

可以看到HDFS上有数据

日志通过脚本导入到HDFS当中

再写一个脚本,分别调用两个脚本 total_put_and_cut_log.sh

授权

<code>

chmod

755

total_put_and_cut_log

.sh

/<code>
日志通过脚本导入到HDFS当中

第一个脚本调用完了之后

睡眠1分钟,让第一个脚本有充足的时间备份

再调用第二个脚本

测试执行

日志通过脚本导入到HDFS当中

这里因为刚刚已经上传了所以文件已经存在

日志通过脚本导入到HDFS当中

定时执行crontab:

crontab -e

<code>

00

00

*

*

*

/bin/sh

/user/local/nginx/logs/apps/nginx/logs/scripts/total_put_and_cut_log.sh

/<code>

查看任务:crontab -l

需要重启crontab:

<code>

service

crond restart/<code>


分享到:


相關文章: