#!/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
分享到:
相关推荐
结合这两个技术,你可以在服务器端使用SSH2进行自动部署操作,同时通过WebSocket向客户端发送部署进度,创建一个实时反馈的部署系统。客户端可以通过WebSocket接收并显示这些信息,提供给运维人员或开发者一个直观的...
总之,SSH Secure Shell Client是IT管理员和开发人员进行远程Linux服务器管理的重要工具,通过它,用户可以高效、安全地执行各种运维任务,无论是web应用的部署、系统的日常维护,还是故障排查,都能得心应手。...
Shell不仅可以执行单个命令,还可以通过脚本文件组合多个命令,实现自动化任务执行。在Unix/Linux环境中,掌握Shell编程技能是提升工作效率的重要手段。 首先,让我们了解基础的Shell命令。`ls`用于列出目录内容,`...
Kafka单机版自动安装Shell脚本是一个便捷的工具,用于简化Apache Kafka在单个服务器上的部署过程。Apache Kafka是一个分布式流处理平台,它被广泛应用于大数据实时处理、消息传递和日志聚合等领域。这个脚本的目的是...
这是一个演示如何自动执行简单(和单个)LDAP服务器部署以及如何将另一个实例集成为客户端的演示。 该手册可用于在裸机和基于云的实例(例如Nova Instances(Openstack)和EC2实例(AWS))上进行部署。 2.安装...
SocketIO-Terminal是一个基于Node.js的客户端-服务器模块,其设计目标是提供类似于Secure Shell (SSH) 的功能,但利用了Socket.IO进行实时双向通信。这个创新的工具使得开发者能够通过Web浏览器远程访问和控制服务器...
在安装部署方面,Exchange 2007引入了基于Web的管理界面——Exchange Management Console (EMC) 和Exchange Management Shell (EMS),提供图形化和命令行两种管理方式。EMC提供直观的用户界面,适合日常管理和快速...
当单个实例无法满足高可用性、数据冗余或更大的存储需求时,Redis集群(Cluster)成为了解决方案。本教程将详细介绍如何部署Redis集群。 一、Redis集群的基本概念 Redis集群采用分片(Sharding)策略,将数据分散到...
随着内部版本的更新,我们不断优化内存使用,增加了Kerberos认证,改进了C++客户端性能,标准化了部署目录,引入了冷备、指标采集、Meta Server内存泄露修复以及Java客户端优化等功能。 在非功能性的改进方面,我们...
随着需求的增长,可以通过水平扩展(增加服务器数量)或垂直扩展(增加单个服务器的资源)来提高处理能力。 8. **应用实例** MQTTerminal-Server的应用场景广泛,如远程设备管理、自动化工作流、无人值守环境的...
2. **脚本支持**:除了单个命令外,该shell还支持编写脚本,可以组合多个命令形成复杂的任务流程,实现更高级的自动化操作。 3. **交互性**:Mambati Alpha Shell提供了友好的交互界面,用户可以通过命令行输入命令...
`mosh`(Mobile Shell)是一款面向移动设备的 SSH 客户端,其核心特性包括: 1. **持久连接**:即使在网络状况差时,mosh 也能保持连接,只需在连接恢复时重新同步。 2. **延迟渲染**:键盘输入和屏幕更新之间的...
### Puppet在Linux系统部署中的应用 #### 概述 Puppet是一种强大的自动化工具,主要用于配置管理系统,确保所有服务器...无论是对于单个系统的初始配置还是整个数据中心的管理,Puppet都是一个值得考虑的强大工具。
- 普通版部署:单个WebServer配合一个或多个ExecutorServer。 - HA部署:多个WebServer配合一个或多个ExecutorServer,通过Nginx实现负载均衡和高可用。 4. **普通版环境部署** - 复制、解压安装包。 - 初始化...
WinSCP是一款广受欢迎的开源软件,专为Windows用户设计,提供了强大的SSH(Secure Shell)协议下的SFTP(Secure File Transfer Protocol)和SCP(Secure Copy Protocol)文件传输功能。这款工具以其直观的图形用户...
TortoiseSVN是一款非常流行的Windows Shell界面的SVN客户端,它提供了直观的图形用户界面,使得用户可以在Windows资源管理器中直接进行版本控制操作,如提交、更新、查看历史等。1.14.5是其版本号,x64表示它是为64...
仅当用户无法证明部署更复杂的 APRS 客户端是合理的时,才应使用此脚本。 如果需要物体以外的额外信标或直接向 RF 发送信标,用户应考虑部署完整的 APRS 系统,例如 aprx ( ) 要使用此脚本,请制作它的本地副本并...
1. 编写Redis客户端启动shell:可以编写一个简单的shell脚本,调用`redis-cli`命令连接Redis服务器。 2. 启动客户端:使用`redis-cli -h 主服务器IP -p 主服务器端口`命令连接主服务器。 3. 数据操作:在客户端上...
首先,我们需要理解SSH(Secure Shell)是一种加密网络协议,常用于远程登录和其他安全网络服务,特别是文件传输。SSH密钥对包括公钥和私钥,公钥放在服务器上,私钥保留在客户端。通过这种方式,可以实现无密码登录...
在提供的压缩包文件“SSH Secure Shell”中,可能包含了一个轻量级的SSH客户端程序,可能支持上述所有功能。用户只需要解压并运行该程序,就可以在Linux系统上便捷地进行远程访问和文件传输,而无需安装额外的SSH...