日誌通過腳本導入到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>


分享到:


相關文章: