承接上一个文档《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
>
创建脚本:
<code>vi
cut_nginx_log
.sh
/<code>
授权
<code>chmod
755cut_nginx_log
.sh
/<code>
代码编写
测试执行
日志剪切走了
再创建一个脚本:
<code>vi
put_log_hdfs
.sh
/<code>
授权
<code>chmod
755put_log_hdfs
.sh
/<code>
编写脚本内容
测试执行
可以看到HDFS上有数据
再写一个脚本,分别调用两个脚本 total_put_and_cut_log.sh
授权
<code>chmod
755total_put_and_cut_log
.sh
/<code>
第一个脚本调用完了之后
睡眠1分钟,让第一个脚本有充足的时间备份
再调用第二个脚本
测试执行
这里因为刚刚已经上传了所以文件已经存在
定时执行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>