#!/bin/bash
#op2(132)
server1='http://132.121.97.178:9518/sync/'
#192
server2='http://192.168.51.191:9518/sync/'
#172
server3='http://172.20.3.219:9518/sync/'
now_server=''
server_json=''
dir_temp='/data/mondev/mondo/client/'
log_dir='/data/mondev/mondo/client/log/'
#get current server
getCurrentServer(){
result1=`curl --connect-timeout 2 $server1`
if [ "$?" == "0" ] && [ "$result1" != "" ]
then
now_server=$server1
server_json=$result1
else
result2=`curl --connect-timeout 2 $server2`
if [ "$?" == "0" ] && [ "$result2" != "" ]
then
now_server=$server2
server_json=$result2
else
result3=`curl --connect-timeout 2 $server3`
if [ "$?" == "0" ] && [ "$result3" != "" ]
then
now_server=$server3
server_json=$result3
else
echo "curl: couldn't connect to server host........"
exit 1
fi
fi
fi
}
#mkdir
makeMulitDir(){
err1=`mkdir -p $dir_temp`
if [ "$?" != "0" ] || [ ! -d "$dir_temp" ]
then
echo "mkdir $dir_temp fail............"
exit 1
fi
mkdir -p $log_dir
}
#get file md5
getMd5(){
file_path=$1
file_md5_value=`md5sum $file_path |awk '{print $1}'`
if [ "$?" != "0" ]
then
echo "get file md5 value has error....... $file_path"
file_md5_value=''
fi
}
#downlaod file
downLoadFile(){
temp_url=$1
down_path1=$2
down_path2=$2".temp"
echo "downloading $down_path1"
msg=`curl $temp_url > $down_path2`
if [ "$?" == "0" ]
then
#chekc md5
if [ -f "$down_path2" ]
then
getMd5 $down_path2
if [ "$file_md5_value" == "$md5val" ]
then
# update file suffix
mv $down_path2 $down_path1
else
echo "downloading file $down_path2 has error............"
fi
else
echo "downloading file $temp_url has error............"
fi
else
echo "downloading file $temp_url has error............"
fi
}
#restart mondo
#proc_count="ps -ef|grep magent | grep mondev |grep -v grep|wc -l"
#kill_proc="ps -ef|grep magent|grep mondev | grep -v grep|awk '{print $2}'|xargs kill"
start_script="sh /data/mondev/mondo/client/bin/magent restart"
#kill has exit process
killExitProcess(){
msg2=`ps -ef|grep magent | grep mondev |grep -v grep|wc -l`
if [ "$?" == "0" ] && [ "$msg2" != "" ]
then
count1=`echo $msg2| tr -s " "`
if [ "$count1" != "0" ]
then
msg3=`ps -ef|grep magent|grep mondev | grep -v grep|awk '{print $2}'|xargs kill`
sleep 2
fi
fi
}
#restart
restart(){
echo "begion to restart magent..........."
killExitProcess
sh /data/mondev/mondo/client/bin/magent restart
}
getCurrentServer
makeMulitDir
if [ "$now_server" != "" ] && [ "$server_json" != "" ]
then
echo $now_server
echo $server_json | awk -F[\}] '{for(i=1;i<=NF;i++)if($i!=""&&$i!=" ") print$i}' |while read var
do
#echo $var |tr -d ', :{}'|awk -F\" '{print $2,$6}'
keyval=`echo $var |tr -d ', :{}'|awk -F\" '{print $2}'`
md5val=`echo $var |tr -d ', :{}'|awk -F\" '{print $6}'`
filedir=${keyval%/*}
filename=${keyval##*/}
current_dir=''
if [ "$filedir" != "" ]
then
current_dir="${dir_temp}""${filedir}"
else
current_dir="${dir_temp}"
fi
if [ ! -d "$current_dir" ]
then
mkdir -p $current_dir
fi
current_file="${dir_temp}""${keyval}"
echo "downloading file $current_file"
urltemp="${now_server}""${keyval}"
if [ -f "$current_file" ]
then
#check md5
getMd5 $current_file
if [ "$file_md5_value" != "$md5val" ]
then
#download file
downLoadFile $urltemp $current_file
fi
else
#download file
downLoadFile $urltemp $current_file
fi
sleep 1
done
#chmod +x
chmod -R +x /data/mondev/mondo/client/bin/
chmod -R +x /data/mondev/mondo/client/sh/
restart
else
echo "has error when get server_json..........."
fi
@dianxinguangchang.43F.zhongshanerlu.yuexiuqu.guangzhoushi.guangdongsheng
2016-10-24 17:49
分享到:
相关推荐
这是一个演示如何自动执行简单(和单个)LDAP服务器部署以及如何将另一个实例集成为客户端的演示。 该手册可用于在裸机和基于云的实例(例如Nova Instances(Openstack)和EC2实例(AWS))上进行部署。 2.安装...
仅当用户无法证明部署更复杂的 APRS 客户端是合理的时,才应使用此脚本。 如果需要物体以外的额外信标或直接向 RF 发送信标,用户应考虑部署完整的 APRS 系统,例如 aprx ( ) 要使用此脚本,请制作它的本地副本并...
Galaxy Project CVMFS存储库的CernVM-FS设置 ...CernVM-FS存储库被部署为单个Stratum 0主服务器,在该服务器中修改了存储库中的文件以及Stratum 1副本。 通常,组织应具有代理服务器,该代理服务器可从Stratum
用法首先,创建一个Web服务器,该服务器将在每个.dmg磁盘映像文件上托管包含单个.pkg软件包文件的磁盘映像。 此目录中包含一个Shell脚本,以生成公钥基础结构(如果尚未存在)。 在线还提供了许多出色的指南和程序,...
使用Docker进行个人服务器设置主机操作系统(仅与docker安装有关): 在具有自定义域的租用VPS中运行。 所有标准安全措施均已到位(来自LetsEncrypt... 使用单个版本控制的Shell脚本(或必要时使用一组脚本)进行部署。
它跨多个视图控制器管理单个WKWebView实例,从而为您提供本机导航UI以及Turbolinks的所有客户端性能优势。 特征 提供快速,高效的混合应用程序。 避免重新加载JavaScript和CSS。 通过共享一个WKWebView节省内存。 ...
部署的客户端: Trusty64 (ubuntu/trusty64) 要求:已安装 Vagrant 和 VirtualBox ( ) 测试主机平台:OS X、Windows 为什么? 我找不到用于设置 Yeoman MEAN 堆栈的单个工作流浪盒。 要么是权限问题,要么是 ...
的所有客户端性能优势的原生导航 UI。 特征 交付快速、高效的混合应用程序。 避免重新加载 JavaScript 和 CSS。 通过共享一个 WebView 节省内存。 跨平台重用移动网络视图。 在服务器上以 HTML 格式创建一次视图。 ...
这些脚本使您可以模拟多节点Mesos集群,以使用Docker容器运行Spark(除了Hadoop,Hadoop目前仅配置为单个节点)。 只需稍加修改IP地址,就可以轻松地将其适应于实际的多节点部署。 基本安排是这样的: Docker主机,...
此 WIP Nutch 部署使用 Nutch 自动登录并抓取 。 运行build.sh以检出 Nutch 主干,构建它,并复制必要的配置文件。 完成后, cd dist使用新配置的 Nutch 发行版。 有关更新的配置文件,请参阅和 。 运行命令bin/...
Mender包括在嵌入式设备上运行的客户端以及管理跨许多设备的部署的服务器。 该存储库包含适用于各种电路板的Yocto集成层。 请查看 ,以获取有关支持的主板的更多信息以及有关如何设置环境和构建映像的说明。 结构...
概括 该存储库基于 ,后者创建了一个系统用户,该用户通过SSH运行单个命令,并管理SSH密钥(authorized_keys)的ACL。 这使我们能够提供一个服务器端点,在其中将管道输入的tar数据流提取到环境变量指定的卷中。参考...
与 Microsoft Visual Studio 2005 集成之后,SQL Server Express 可以轻松的开发功能强大且安全的数据驱动应用程序,并允许快速部署这些应用程序。SQL Server Express 可以根据协议重新进行发布,并可作为客户端...
Galène是一种视频会议服务器,易于部署(只需复制一些文件并运行二进制文件),并且需要适度的服务器资源。 它最初是为演讲和会议而设计的(单个发言人将音频和视频流传输给成百上千的用户),但后来演变为对学生...