承接上一個文檔《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>