说明:
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