背景
一般我們在實際的生產環境中,進行日誌採集的時候一般都是,寫乙個指令碼的,不可能一台一台機器上去登入進行開啟flume或者停止flume,那樣效率就太低了,於是我們就需要開發乙個指令碼來啟動和關閉。
#! /bin/bash
case
$1in
"start");
;"stop"
)' | xargs kill"
done};
;esac
這裡面的啟動指令碼比較簡單,就是執行flume啟動命令就可以了,不過這裡面停止指令碼需要好好說明一下了
簡單說說其它的**含義
nohub,該命令可以在你推出賬號/關閉終端之後繼續執行相應的程序。nobub就是不掛起的意思,不結束通話地執行命令。
/dev/null代表linux的空裝置檔案,所有往這個檔案裡面寫入的內容都會丟失,俗稱「黑洞」。
標準輸入0:從鍵盤獲得輸入/proc/self/fd/0。
標準輸入1:輸出到螢幕(既控制台)/proc/self/fd/1。
錯誤輸出2:輸出到螢幕(既控制台)/proc/self/fd/2。
這個停止指令碼有點難道,不是一下就能想到的,因為flume 沒有提供專門的停止命令,一般我們都是使用kill -9 殺死,不過需要知道pid號,但是每次啟動都會有不同的pid號,那麼我們就需要獲取這個pid號碼,於是我們使用下面這個命令。
ps -ef |
grep file-flume-kafka |
grep -v grep
|awk''|
xargs
kill
那我們一步一步解析一下上面這個命令,當你執行ps -ef | grep file-flume-kafka命令的時候會查到兩個程序乙個是flume的乙個是本條命令的程序,那麼我們需要把這個命令過濾掉,於是在後面加上 | grep -v grep 。
但是我們看看上面命令查詢出來結果第二個引數是pid,那麼我們使用 | awk 『』 查詢出pid就可以了
最後乙個引數 | xargs kill 就是和kill -9 的意思一樣,如果想真正的了解這些命令的具體引數建議出門左拐好好研究一番。
flume啟動停止指令碼
1.在bin 目錄下建立f1.sh vim f1.sh 寫入 bin bash case 1in start for i in hadoop01 hadoop02 doecho 啟動 i 採集flume ssh i nohup opt flume bin flume ng agent conf fi...
flume配置採集日誌
上傳dir hdfs.conf 到flume的conf目錄下 定義三大元件的名稱 ag1.sources source1 ag1.sinks sink1 ag1.channels channel1 配置source元件 ag1.sources.source1.type spooldir ag1.so...
kafka啟動停止指令碼
linux常見檔案 cat start.sh ctrl d推出儲存 kafka啟動指令碼 bin bash echo start kafka cd home software kafka 2.11 0.11.0.3 bin zookeeper server start.sh daemon confi...