72 lines
1.9 KiB
Bash
72 lines
1.9 KiB
Bash
#!/bin/bash
|
||
|
||
basePath="$0"
|
||
|
||
while [ -h "$basePath" ] ; do
|
||
ls=`ls -ld "$basePath"`
|
||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||
if expr "$link" : '/.*' > /dev/null; then
|
||
basePath="$link"
|
||
else
|
||
basePath=`dirname "$basePath"`/"$link"
|
||
fi
|
||
done
|
||
|
||
basePath=`dirname "$basePath"`
|
||
|
||
[ -z "$oam_home" ] && oam_home=`cd "$basePath/.." ; pwd`
|
||
cd "$oam_home"/shell
|
||
|
||
#collector 目的目录
|
||
collector_dest_path=$oam_home/collector
|
||
#collector 源目录
|
||
collector_src_path=$oam_home/conf/collector
|
||
cd $collector_src_path
|
||
#修改configs文件夹下所有.cfg配置文件的pubInfo 中的seqid
|
||
while read line;do
|
||
eval "$line"
|
||
done < $collector_src_path/config
|
||
index=1
|
||
flag=1
|
||
while [ $flag -eq 1 ]; do
|
||
key='ip'${index}
|
||
value=`eval echo '$'${key}`
|
||
OLD_IFS="$IFS"
|
||
IFS=","
|
||
#ip{id}=ip,user,pwd,name,ethname,sort,isMaster
|
||
value_arr=($value)
|
||
IFS=$OLD_IFS
|
||
|
||
ip=${value_arr[0]}
|
||
username=${value_arr[1]}
|
||
password=${value_arr[2]}
|
||
isMaster=${value_arr[6]}
|
||
ethname=${value_arr[4]}
|
||
if [ -z ${value} ];then
|
||
flag=0
|
||
else
|
||
#是本台机器
|
||
isThis=`ifconfig $ethname | head -2 | tail -n 1 | awk '{print $2}'`
|
||
echo "index=$index $ip"
|
||
if [ "${isThis}" == "${ip}" ];then
|
||
mkdir -p $collector_dest_path/
|
||
cp -r $collector_src_path/* $collector_dest_path/
|
||
chmod +x ${collector_dest_path}/*.sh
|
||
#修改config 的seqid
|
||
$collector_dest_path/modify_config_seqId.sh
|
||
else
|
||
|
||
$collector_src_path/expect_ssh "$ip" "$username" "$password" "mkdir -p $collector_dest_path"
|
||
#其它机器发送脚本,修改配置文件
|
||
$collector_src_path/expect_scp_push "$password" ${collector_src_path}/ "$username@$ip:$oam_home"
|
||
sleep 1
|
||
echo 'expect ssh'
|
||
#给脚本执行权限,修改config seqId
|
||
$collector_src_path/expect_ssh "$ip" "$username" "$password" "chmod +x ${collector_dest_path}/*.sh;$collector_dest_path/modify_config_seqId.sh"
|
||
fi
|
||
let "index++"
|
||
fi
|
||
done
|
||
#重新返回进入的目录
|
||
cd $basePath
|