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