#!/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
|