35 lines
1.2 KiB
Bash
35 lines
1.2 KiB
Bash
#! /bin/bash
|
|
#启动storm任务脚本
|
|
|
|
#任务jar所在目录
|
|
BASE_DIR=$2
|
|
#jar name
|
|
JAR_NAME='radius-account-knowledge.jar'
|
|
#nimbus ip
|
|
LOCAL_IP=$3
|
|
|
|
cd $BASE_DIR
|
|
|
|
function read_dir(){
|
|
for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令
|
|
do
|
|
if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错
|
|
then
|
|
read_dir $1"/"$file
|
|
else
|
|
jar -xvf $BASE_DIR/$JAR_NAME knowledge_config.properties
|
|
cat $1$file > $BASE_DIR/knowledge_config.properties
|
|
sed -i 's/ipaddress/'$LOCAL_IP'/' $BASE_DIR/knowledge_config.properties
|
|
jar -uvf $BASE_DIR/$JAR_NAME knowledge_config.properties
|
|
docker run -it --rm -v $BASE_DIR/$JAR_NAME:/$JAR_NAME --env ZK_IPARR=$LOCAL_IP --env NIMBUS_IP=$LOCAL_IP --env ZK_PORTS=2181 --net host storm:1.0.2 /opt/apache-storm-1.0.2/start_storm.sh storm jar /$JAR_NAME cn.ac.iie.topology.RadiusLogClearTopology $file remote
|
|
fi
|
|
done
|
|
}
|
|
#读取第一个参数 为配置文件目录名称
|
|
if [ $# != 3 ];then
|
|
echo "usage: ./start.sh [Configuration path] [Path of jar] [nimbus ip]"
|
|
exit 1
|
|
fi
|
|
read_dir $1
|
|
|