说明:
1、公司将软件移到 Ubuntu 系统之后,升级对有些人来说比较麻烦,因此就将多个升级包合并。
2、脚本增加升级前结束必要的进程。
3、优化升级脚本步骤,更加可观。
4、检查当前用户是否 root 权限。(2019 年 12 月 27 日更新)
1、公司将软件移到 Ubuntu 系统之后,升级对有些人来说比较麻烦,因此就将多个升级包合并。
2、脚本增加升级前结束必要的进程。
3、优化升级脚本步骤,更加可观。
4、检查当前用户是否 root 权限。(2019 年 12 月 27 日更新)
#!/bin/bash
#升级脚本
P1='hlwatchdog'
P2='cms'
P3='streamprocess'
echo '*************************************'
echo '**********检查当前用户权限***********'
sleep 1
if [ `whoami` != "root" ];then
echo "**********当前用户权限不足***********"
echo "**本脚本退出后请使用 sudo su 提升权限**"
echo "*************脚本已退出**************"
exit
fi
echo '*********当前用户权限已满足**********'
echo '*************************************'
sleep 1
echo '0、升级前版本'
version=`cat /opt/smartlighteye/hlversion`
echo $version
sleep 1
echo '*************************************'
echo '**********执行 kill 进程任务***********'
echo '*************************************'
sleep 1
echo '1、获取进程 PID'
P1_ID=`ps -e | grep $P1 | grep -v grep | awk '{print $1 }'`
P2_ID=`ps -e | grep $P2 | grep -v grep | awk '{print $1 }'`
P3_ID=`ps -e | grep $P3 | grep -v grep | awk '{print $1 }'`
echo $P1'---PID:'$P1_ID
echo $P2'---PID:'$P2_ID
echo $P3'---PID:'$P3_ID
sleep 1
echo '2、开始 kill 进程!'
echo "------------kill $P1-----------------"
kill -9 $P1_ID
echo "************kill $P2*****************"
kill -9 $P2_ID
echo "************kill $P3*****************"
kill -9 $P3_ID
sleep 1
echo '3、注意 5 秒后验证进程是否结束!'
sleep 5
P1_ID=`ps -e | grep $P1 | grep -v grep | awk '{print $1 }'`
P2_ID=`ps -e | grep $P2 | grep -v grep | awk '{print $1 }'`
P3_ID=`ps -e | grep $P3 | grep -v grep | awk '{print $1 }'`
echo $P1'---PID:'$P1_ID
echo $P2'---PID:'$P2_ID
echo $P3'---PID:'$P3_ID
while true
do
read -p '注意:若以上进程 PID 为空,请输入 Y 继续,否则输入 N 退出!' input
case $input in
[yY][eE][sS]|[yY])
echo '*************************************'
echo '***********开始升级任务**************'
echo '*************************************'
echo "注意本版本是 1.1 至 1.8 升级包的打包版本!"
sleep 1
echo "Ready upgrade to 1.1-1.8"
tar -zxvf smartlighteye.tar.gz -C /opt
echo "解压完成,执行下一步..."
cd /etc/init.d/
echo 'cd /etc/init.d/执行完成!'
rm hl*
echo '删除 hl*完成'
sleep 3
ln -s /opt/smartlighteye/start/hlweb.sh hlweb
ln -s /opt/smartlighteye/start/hlsrs.sh hlsrs
ln -s /opt/smartlighteye/start/hlwatchdog.sh hlwatchdog
update-rc.d hlwatchdog defaults 89
update-rc.d hlweb defaults 90
update-rc.d hlsrs defaults 91
echo '*************************************'
echo '------升级命令已全部执行完毕---------'
echo '*************************************'
sleep 1
newversion=`cat /opt/smartlighteye/hlversion`
echo '----------请查看升级结果--------------'
sleep 1
echo $version' --> '$newversion
sleep 3
echo '*************************************'
echo '-----------系统即将重启--------------'
echo '*************************************'
sleep 1
echo '----------------3--------------------'
sleep 1
echo '----------------2--------------------'
sleep 1
echo '----------------1--------------------'
reboot
exit 1
;;
[nN][oO]|[nN])
echo '*************************************'
echo '************脚本已结束***************'
echo '*************************************'
exit 1
;;
*)
echo "输入错误,请输入 Y 或者 N..."
;;
esac
done