#!/bin/bash #stop proc killP() { pkill $1 ps aux | grep "$1" | grep -q -v grep PROCESS_STATUS=$? if [ $PROCESS_STATUS -ne 0 ]; then pkill $1 fi } startSdkCompareWithOneParam(){ number=`ps -ef | grep "sdkCompare" | grep -v grep | wc -l` if [ $number -ne 2 ]; then killP sdkCompare sleep 2 date +%D-%T" sdkCompare start" nohup ./sdkCompare $1 >/dev/null 2>&1 & nohup ./sdkCompare $1 -target=es >/dev/null 2>&1 & return 1 else echo "sdkCompare is exists">>upgrade.out return 0 fi } cd /opt/vasystem/bin patchPath=$1 zipPath=$2 chunkPath=$3 files=$(ls $patchPath) echo "patchPath: " $patchPath >> upgrade.out if [ ! -d $patchPath ]; then echo "$patchPath not exist,patch update fail" >> upgrade.out else for item in $files do if [ -f $patchPath/$item ]; then echo "start update proc ${item}" >> upgrade.out killP $item sleep 2 cp $patchPath/$item /opt/vasystem/bin chmod +x /opt/vasystem/bin/$item if [ "$item" = "sdkCompare" ]; then startSdkCompareWithOneParam -e=pro echo "update ${item} success" >> upgrade.out elif [ "$item" = "ruleprocess" ]; then echo "update algorithm" >> upgrade.out #update algorithm if [ -d $patchPath/algorithm ]; then cp -r $patchPath/algorithm /opt/vasystem/bin fi nohup ./ruleprocess >/dev/null 2>&1 & else nohup ./$item >/dev/null 2>&1 & echo "update ${item} success" >> upgrade.out fi else if [ "$item" = "dist" ]; then echo "update web dist" >> upgrade.out cp -r $patchPath/$item /opt/vasystem/web else echo "unknown directory ${item}" >> upgrade.out fi fi done fi echo "exec rm -rf ${patchPath} ${zipPath} ${chunkPath}" >> upgrade.out rm -rf $patchPath $zipPath $chunkPath echo "rm success" >> upgrade.out exit 0