crontab执行日志_日志通过脚本导入到HDFS当中

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

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

时间命令

date +"%Y%m%d" 今天的日期date -d "1 day ago" +"%Y%m%d" 昨天的日期date -d "-1 day" +"%Y%m%d" 昨天的日期

获取昨天的日志:

mv access.log 20200128access.log

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

mkdir scripts
8d9e0fbdf26cef8e522753117b78da84.png

创建脚本:

vi cut_nginx_log.sh

授权

chmod 755 cut_nginx_log.sh
7cd93d1eb971a452e5c264d0f6066604.png

代码编写

70d797199c6c3c0a5f8d5a191f164e12.png

测试执行

16986d2dab6440942cb18aeff898a330.png

日志剪切走了

aa7594a7c18310db30d08eefe4b7435f.png

再创建一个脚本:

vi put_log_hdfs.sh

授权

chmod 755 put_log_hdfs.sh
3197f24dbcff48bcb2f59de306b9a2e3.png

编写脚本内容

d128536611f213f19c2031946b83a3ab.png

测试执行

f0eba9edd3de1cac371149d5d04e86fd.png

可以看到HDFS上有数据

5d805f2172e175447a885434172d956a.png

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

授权

chmod 755 total_put_and_cut_log.sh
98e72898b254687c1bb14dea7f30e1ec.png

第一个脚本调用完了之后

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

再调用第二个脚本

测试执行

906fafa99b1cafd514266716f6d8a02b.png

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

287519e4a86a212b7070e4c50fecfae8.png

定时执行crontab:

crontab -e

00 00 * * * /bin/sh /user/local/nginx/logs/apps/nginx/logs/scripts/total_put_and_cut_log.sh

查看任务:crontab -l

需要重启crontab:

service crond restart
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值