122 lines
3.4 KiB
Bash
122 lines
3.4 KiB
Bash
#!/bin/bash
|
||
#带颜色输出内容
|
||
#$1 颜色 red green yellow 警告 red 成功 green 提示/输入 yellow
|
||
#$2 输出语句
|
||
#$3 -n y/n 是否换行输出
|
||
function pinfo(){
|
||
LINE=""
|
||
if [[ "$#" -gt 2 ]]; then
|
||
#statements
|
||
if [[ "$3" = "n" ]]; then
|
||
#statements
|
||
LINE="-n"
|
||
fi
|
||
fi
|
||
case $1 in
|
||
"red")
|
||
echo -e $LINE "\e[1;31m "${2}"\e[0m"
|
||
;;
|
||
"green")
|
||
echo -e $LINE "\e[1;32m "${2}"\e[0m"
|
||
;;
|
||
"yellow")
|
||
echo -e $LINE "\e[1;33m "${2}"\e[0m"
|
||
;;
|
||
"blue")
|
||
echo -e $LINE "\e[1;34m "${2}"\e[0m"
|
||
;;
|
||
*)
|
||
echo $LINE $2
|
||
;;
|
||
esac
|
||
}
|
||
|
||
|
||
if [[ "$#" < 2 ]]; then
|
||
pinfo red "the script need parameters:dc host and node ip file ! "
|
||
exit
|
||
fi
|
||
|
||
#IP_RE="((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))"
|
||
|
||
IP_RE="^([0-9]{1,3}.){3}[0-9]{1,3}$"
|
||
|
||
#dc的ip
|
||
DC_HOST="$1"
|
||
#保存需要安装nc机器ip的文件
|
||
NODE_FILE="$2"
|
||
#nc安装目录
|
||
INSTALL_DIR="/home/ceiec/nms"
|
||
|
||
if [[ "$DC_HOST" =~ $IP_RE ]]; then
|
||
echo -n ""
|
||
else
|
||
pinfo red "the first parameter dc host is invalid!"
|
||
exit
|
||
fi
|
||
|
||
(head "$NODE_FILE" >/dev/null 2>&1)
|
||
|
||
if [[ "$?" == 1 ]];then
|
||
pinfo red "the second parameter node ip file is invalid!"
|
||
exit
|
||
fi
|
||
|
||
#当前目录
|
||
TEMP=`dirname "$0"`
|
||
CUR_DIR=`cd "$TEMP";pwd`
|
||
|
||
#nc压缩包
|
||
NCNAME="nmsclient.tar.gz"
|
||
#jre压缩包
|
||
JRENAME="jre-7u80-linux-i586.tar.gz"
|
||
|
||
if [ "`uname -i`" = "x86_64" ];then
|
||
JRENAME="jre-7u80-linux-x64.tar.gz"
|
||
fi
|
||
|
||
#绝对路径
|
||
NCFILE=${CUR_DIR}"/"${NCNAME}
|
||
JREFILE=${CUR_DIR}"/"${JRENAME}
|
||
|
||
|
||
#jre安装目录
|
||
JRE_DIR="jre1.7.0_80"
|
||
|
||
if [[ ! -f "$NCFILE" ]];then
|
||
pinfo red "the nmsclient file is not exist!"
|
||
exit
|
||
fi
|
||
|
||
if [[ ! -f "$JREFILE" ]];then
|
||
pinfo red "the jre file is not exist!"
|
||
exit
|
||
fi
|
||
|
||
pinfo yellow "安装程序准备就绪···"
|
||
echo "========================================================="
|
||
pinfo yellow "开始拷贝jre文件···"
|
||
pscp -h "$NODE_FILE" "$JREFILE" /home
|
||
pinfo green "拷贝jre文件完成!"
|
||
echo "========================================================="
|
||
pinfo yellow "开始拷贝NC安装程序···"
|
||
pscp -h "$NODE_FILE" "$NCFILE" /home
|
||
pinfo green "NC安装程序拷贝完成!"
|
||
echo "========================================================="
|
||
|
||
function rand(){
|
||
min=$1
|
||
max=$(($2-$min+1))
|
||
num=$(date +%s%N)
|
||
echo $(($num%$max+$min))
|
||
}
|
||
|
||
pinfo yellow "开始安装NC···"
|
||
echo "========================================================="
|
||
prop_name="server_host"
|
||
PROP_FILE=${INSTALL_DIR}"/nmsclient/conf/myconfig.properties"
|
||
pssh -i -t 60 -h "$NODE_FILE" "mkdir -p ${INSTALL_DIR};mv /home/${NCNAME} ${INSTALL_DIR};tar -xzf ${INSTALL_DIR}/${NCNAME} -C ${INSTALL_DIR};mkdir -p ${INSTALL_DIR}/${JRE_DIR};mv /home/${JRENAME} ${INSTALL_DIR};tar -xzf ${INSTALL_DIR}/${JRENAME} -C ${INSTALL_DIR}/${JRE_DIR} --strip-components=1 ;ln -s ${INSTALL_DIR}/${JRE_DIR} ${INSTALL_DIR}/nmsjdk; sed -i 's|^$prop_name.*|$prop_name=$DC_HOST|' $PROP_FILE;echo '5-20 秒后启动nmsclient~';sleep $(rand 5 20);bash ${INSTALL_DIR}/nmsclient/shell/startup.sh;echo ${INSTALL_DIR}'/nmsclient/shell/startup.sh'>>/etc/rc.d/rc.local;chmod +x /etc/rc.d/rc.local;" 2>>error.log
|
||
pinfo green "程序安装完成!"
|
||
|
||
|