1. 程式人生 > >flume 啟動,停止,重啟腳本

flume 啟動,停止,重啟腳本

linux agent starting con log 8.0 ava apach rep

#!/bin/bash
#echo "begin start flume..."
#flume的安裝根目錄(根據自己情況,修改為自己的安裝目錄)
path=/sysware/apache-flume-1.8.0-bin 
echo "flume home is :$path" 
#flume的進程名稱,固定值(不用修改)
JAR="flume"
#flume的配置文件名稱(根據自己的情況,修改為自己的flume配置文件名稱)
Flumeconf="flume-conf.conf"
#定義的soure名稱
agentname="agent1"
function start(){
echo "begin start flume process ...." 
#查找flume運行的進程數
num=`ps -ef|grep java|grep $JAR|wc -l`  
#判斷是否有flume進程運行,如果有則運行執行nohup命令
if [ "$num" = "0" ] ;then 
nohup $path/bin/flume-ng agent --conf conf -f $path/conf/$Flumeconf --name $agentname -Dflume.root.logger=INFO,console & 
echo "start success...." 
echo "日誌路徑: $path/logs/flume.log" 
else 
echo "進程已經存在,啟動失敗,請檢查....." 
exit 0 
fi 
}
function stop(){
echo "begin stop flume process.."
num=`ps -ef|grep java|grep $JAR|wc -l`
#echo "$num...."
if [ "$num" != "0" ];then
#正常停止flume
ps -ef|grep java|grep $JAR|awk ‘{print $2;}‘|xargs kill 
echo "進程已經關閉..."
else
echo "服務未啟動,無須停止..."
fi
}
function restart(){
#echo "begin stop flume process .."
#執行stop函數
stop
#判斷程序是否徹底停止
num=‘ps -ef|grep java|grep $JAR|wc -l‘
#stop完成之後,查找flume的進程數,判斷進程數是否為0,如果不為0,則休眠5秒,再次查看,直到進程數為0
while [ $num -gt 0 ];do
sleep 5
num=‘ps -ef|grep java|grep $JAR|wc -l‘
done
echo "flume process stoped,and starting..."
#執行start
start
echo "started...."
}
#case 命令獲取輸入的參數,如果參數為start,執行start函數,如果參數為stop執行stop函數,如果參數為restart,執行restart函數
case "$1" in
"start")
start
;;
"stop")
stop
;;
"restart")
restart
;;
*)
;;
esac  

  

以上腳本命名成.sh文件,例如我命名為 flume.sh ,存放路徑為 /sysware

調用start 函數:

sh /sysware/flume.sh start

調用 stop命令

sh /sysware/flume.sh stop

調用重啟命名

sh /sysware/flume.sh restart

以上腳本即可完成flume的start,stop,restart,並且在後臺運行的需求。

此博客中涉及到一些flume,shell命令知識點

shell :函數、if 、while ,case 等,可參考linux分類進行學習

flume:flume啟動命令 ,可參考大數據分類進行學習

flume 啟動,停止,重啟腳本