脚本大致如下
###made by h###
if [ -z "$readversion" ]; then
echo ---------------------------------
#显示目录下所有agent安装包
echo "List file[该目录下安装包为]:::"
ls agent*.tar.gz
ls AGENT*.tar.gz
echo ---------------------------------
#查看已安装旧版本
echo "已安装版本:::"
cat /opt/server/web/agent/version.properties
echo
echo ---------------------------------
########### 检查版本号是否为数字串
i=1
while(($i<100))
do
echo "Input version info [输入需升级版本号(文件名末尾四位数字)]:::"
read vernum
sleep 1
############
expr $vernum "+" 10 &> /dev/null
if [ $? -eq 0 ];then
echo ---------------------------------
echo "YOU INPUT VERSION INFO (版本号)::: $vernum"
echo ---------------------------------
readversion=$vernum;
sleep 2
#输入正确则解压对应安装包安装,输入错误则exit0
if [ -e "AGENT-$readversion-V1.tar.gz" ];then
tar -zxvf AGENT-$readversion-V1.tar.gz
else
echo ---------------------------------
echo -e "\033[31mNo such file or directory[无此安装包]\033[0m"
echo ---------------------------------
exit 0
fi
sleep 5
cd agent_$vernum-V1
sh install.sh
#显示进程运行状态新装版本号和启动进程(start.sh中已有kill旧进程号重启功能)
cd /opt/server/web/agent
echo ---------------------------------
ps -ef|grep agent.jar
echo ---------------------------------
./start.sh
sleep 5
echo ---------------------------------
ps -ef|grep agent.jar
echo ---------------------------------
echo "版本号:::"
cat version.dat
echo
echo ---------------------------------
echo -e "\033[32mFinish[已完成升级]\033[0m"
echo ---------------------------------
exit 0
break
#输入版本号错误调至此处
else
echo -e "\033[31mYOU INPUT VERSION INFO [版本号] NOT A number[请输入数字]!!!\033[0m"
let "i++"
fi
done
fi