關注公衆號:分享電腦學習
回覆"百度雲盤" 可以免費獲取所有學習文檔的代碼(不定期更新)
利用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
創建腳本:vi cut_nginx_log.sh
授權chmod 755 cut_nginx_log.sh
代碼編寫
測試執行
日誌剪切走了
再創建一個腳本:vi put_log_hdfs.sh
授權chmod 755 put_log_hdfs.sh
編寫腳本內容
測試執行
可以看到HDFS上有數據
再寫一個腳本,分別調用兩個腳本 total_put_and_cut_log.sh
授權chmod 755 total_put_and_cut_log.sh
第一個腳本調用完了之後
睡眠1分鐘,讓第一個腳本有充足的時間備份
再調用第二個腳本
測試執行
這裏因爲剛剛已經上傳了所以文件已經存在
定時執行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