linux 软件升级脚本,Linux下远程升级脚本

先使用wget将升级文件下载到dcu_update文件夹里,然后使用system(“remote_update.sh”)函数调用执行脚本。

remote_update.sh:

#!bin/sh

#此脚本放在dcu文件夹的外面

#杀掉正在运行的dcu进程

pidlist=`ps -ef |grep "dcu.bin" |grep -v "grep"|awk '{print $2}'`

echo "id list:$pidlist"

if [ "$pidlist" = "" ]

then

echo "no app pid alive"

else

for pid in ${pidlist}

do

kill -9 $pid

echo "KILL $pid:"

echo "app stop success"

done

fi

#查看dcu_backup文件夹是否存在,如果存在则删除

if [ -e dcu_backup ]

then

rm -rf dcu_backup

echo "delete dcu_back_up"

fi

#将当前dcu文件夹改名成dcu_backup

if [ -e dcu ]

then

mv dcu dcu_backup

echo "rename dcu to dcu_backup"

fi

#升级文件放在dcu_update中,将dcu_update改名成dcu

if [ -e dcu_update ]

then

mv dcu_update dcu

echo "rename dcu_update to dcu"

else

#如果dcu_update文件夹不存在,则将dcu_backup文件夹拷贝到dcu,启动里面的dcu程序

cp -r dcu_backup dcu

cd dcu

./dcu.bin & #加"&",让dcu后台运行

echo "start old dcu success"

exit 0 #退出

fi

#启动升级后的dcu

cd dcu

./dcu.bin & #加"&",让dcu后台运行

cd ..

echo "start new dcu success"

#检查升级后的dcu是否正常启动,如果正常启动则生成一个标识升级成功的文件,退出

#如果没有检测到升级后的dcu进程,则删除当前dcu文件夹,拷贝备份程序为当前dcu

updatepid=`ps -ef |grep "dcu.bin" |grep -v "grep"|awk '{print $2}'`

if [ "$updatepid" = "" ]

then

#没有检测到升级后的dcu进程

rm -rf dcu

cp -r dcu_backup dcu

cd dcu

./dcu.bin & #加"&",让dcu后台运行

exit 0

else

#升级成功,创建update_success空文件

#dcu启动后检测时候有此文件,如果有,则发送升级成功消息,并删除此文件;如果没有,则发送升级失败消息

touch update_success

fi

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值