本文提供了1个用于判断2个GBase 8a数据库版本哪个更新的脚本。如果新版本的svn数值比老的还小,则抛出警告信息。
目录导航
脚本
输入2个包含svn信息的文件,其中第二个文件是最新的。如果新的svn比老的还小,则报警告。
[root@gbase_rh7_001 gcinstall]# cat checksvn.sh
#/bin/bash
file1=$1
file2=$2
if [ $# -ne 2 ]; then
echo "Please special two svn file, Second is newer. Otherwise print Waring info"
echo "请输入2个svn文件名作为参数,第二个svn文件版本更加新,否则报警告信息"
exit 0
fi
function getValue() {
filename=$1
key=$2
myresult=`grep ${key} ${filename} | awk -F[:=] '{print $2}'|sed 's/\s//g'`
}
keys=(install_svn autobuild_svn monit_svn gcrcman_svn corosync_svn gcware_svn gcluster_svn logCollector_svn GCMonit_svn gnode_svn)
for key in ${keys[*]} ; do
getValue $file1 $key
val1=$myresult
getValue $file2 $key
val2=$myresult
echo -n $key...
if [ $val2 -lt $val1 ] ; then
echo WARING:$val1 ">" $val2;
else
echo "OK"
fi
done;
测试数据
新旧的版本信息中,gcluster_svn的信息不同,老的是125743,新的是125742,新的比老的svn号更小,则会爆出WARNING。
老版本信息
[root@gbase_rh7_001 gcinstall]# cat BUILDINFO
release_version = 9.5.2.36
os_ventor = redhat
build_version = release
license = none
install_svn:125703
autobuild_svn:125703
monit_svn: 76343
gcrcman_svn: 124109
corosync_svn: 125515
gcware_svn: 125515
gcluster_svn: 125743
logCollector_svn: 94134
GCMonit_svn: 125355
gnode_svn: 125743
新版本信息
[root@gbase_rh7_001 gcinstall]# cat BUILDINFO_2
release_version = 9.5.2.36
os_ventor = redhat
build_version = release
license = none
install_svn:125703
autobuild_svn:125703
monit_svn: 76343
gcrcman_svn: 124109
corosync_svn: 125515
gcware_svn: 125515
gcluster_svn: 125742
logCollector_svn: 94134
GCMonit_svn: 125355
gnode_svn: 125743
运行结果
[root@gbase_rh7_001 gcinstall]# sh checksvn.sh BUILDINFO BUILDINFO_2
install_svn...OK
autobuild_svn...OK
monit_svn...OK
gcrcman_svn...OK
corosync_svn...OK
gcware_svn...OK
gcluster_svn...WARING:125743 > 125742
logCollector_svn...OK
GCMonit_svn...OK
gnode_svn...OK
[root@gbase_rh7_001 gcinstall]