expect自动检测并重启另外一台服务器上的程序代码_linux shell

[s005 you] # cat haproxy_expect

复制代码 代码如下:

#!/usr/bin/expect
set ssh_user "fivetrees"
set password "123456"
spawn ssh -i /root/.ssh/$ssh_user Server004.xd.com
expect_before "no)?" {
send "yes\r" }
sleep 0.5
expect "Enter passphrase for key*"
send "$password\r"
expect "*#"
send "/tmp/haproxy.sh\r"
expect "*#"
send "echo\r"
exit

[s004 him] # cat haproxy.sh

复制代码 代码如下:

#!/bin/bash
Thread=`ps -ef | grep haproxy | grep -v haproxy.sh | grep -v grep`
if [ -z "$Thread" ]
then
        /tmp/haproxy_expect
fi

[s004 him] # cat haproxy_expect

复制代码 代码如下:

#!/usr/bin/expect
set ssh_user "fivetrees"
set password "123456"
spawn ssh -i /root/.ssh/$ssh_user Server005.xd.com
expect_before "no)?" {
send "yes\r" }
sleep 0.5
expect "Enter passphrase for key*"
send "$password\r"
expect "*#"
send "/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg\r"
expect "*#"
send "echo\r"
exit

时间: 2024-10-04 13:31:56

expect自动检测并重启另外一台服务器上的程序代码_linux shell的相关文章

expect实现单台、多台服务器批量scp传输文件_linux shell

今天公司同事要在一台服务器上对另外两台同机房的服务器进行文件传输,两台服务器的文件存放地址一致,密码和key也一致(我们公司在安全上做得有点变态的),为了效率写了下面这个脚本. 1.单台传输脚本 cat /root/soft_shell/allscp.sh 复制代码 代码如下: #!/usr/bin/expect if {$argc < 2} {         send_user "usage: $argv0 src_file username ip dest_file password

Twitter如何在数千台服务器上快速部署代码?,互联网营销

答案是:用BT,也就是你我应该都很熟悉的BitTorrent. 对于网站经营者.创业者来说,扩展性的问题是在网站流量成长过程中势必会面对的问题,如何建立一个具有扩展性的架构(scalable architecture)便是在规划网站事业过程中不可或缺的专业知识. 如果服务本身的功能性符合用户需求,却因为架构.程序性能.数据库性能的问题导致服务增长出现瓶颈时,如何评估.分析网站性能瓶颈?厘清问题后如何找出对应的解決方案,可以思考的相关议题可能包括: 如何有效率地厘清问题?从客户端的数据(读取时间)

在一台服务器上实现多个Web站点

web|服务器|站点 Windows 2000 Server安装成功后,一般会启动一个默认的Web站点,为整个网络提供Internet服务.在中小型局域网中,服务器往往只有一台,但是一个Web站点显然又无法满足工作需要.那么,能否在一台服务器上设置多个Web站点(以下我们简称为"一机多站")呢?答案是肯定的,并有多种途径可以达到这一目的.我们知道,网络上的每一个Web站点都有一个惟一的身份标识,从而使客户机能够准确地访问.这一标识由三部分组成,即TCP端口号.IP地址和主机头名,要实现

问个应该不难的问题:文件能不能上传到另一台服务器上??

问题描述 请高手指点一个问题:最近公司在写套系统,需要上传文件,因为文件比较大,而且多个分公司都要使用,所以想代码放在一台共用的服务器上(比较方便修改更新),而上传的文件,每个分公司一台服务器,上传的文件分别放在自己的服务器上.(通过登录账号可以判断出是那个分公司的人在用.)这样的效果能否实现? 解决方案 解决方案二:既然多个分公司都要使用,那么为什么不把文件都放到同一个服务器上,每个分公司一个文件夹,而要分别放到多个服务器上?非要这么做也不是不可以,不过你要保证每个分公司的服务器互相都能访问,

如何在同一台服务器上建立Oracle 10g DATA GUARD

为了测试在同一台服务器上建立了DATA GUARD环境. 主库状态正常,也存在可用的备份,下面设置主库的FORCE LOGGING和相关的初始化参数: SQL> alter database force logging; Database altered. 修改主库的初始化参数: SQL> alter system set log_archive_config = 'DG_CONFIG=(primary,standby)'; System altered. SQL> alter syst

开机启动-数据库和应用都装在一台服务器上同时设置开机自动启动会有问题吗?

问题描述 数据库和应用都装在一台服务器上同时设置开机自动启动会有问题吗? 会不会出现数据库还没启动完成应用就启动了,然后连不上数据库就出错了? 解决方案 数据库能否连上,不是数据库软件启动,而是服务,即使你没有进入windows,sqlserver的服务也起来了,你一样能连接,当然,也不排除,应用启动迅速,而服务还未准备好的情况 解决方案二: 肯定要保证数据库服务先正常启动的前提下再启动数据库 解决方案三: 对,服务在开机启动,一般不会连不上耳朵 解决方案四: win7以后,服务,启动应用程序,

负载均衡-请问一下nginx里配置upstream 如何能获得最终负载到哪台服务器上呢

问题描述 请问一下nginx里配置upstream 如何能获得最终负载到哪台服务器上呢 请问一下nginx里配置upstream 如何能获得最终负载到哪台服务器上呢 解决方案 这个是nginx自己内部的处理了,你只能从access.log等中去查看

图片-memcache与couchbase安装在同一台服务器上出错

问题描述 memcache与couchbase安装在同一台服务器上出错 小弟最近碰到了服务器做缓存服务同时安装了memcache与couchbase两个缓存应用,但是实际运行时报缓存错误,报错截图如下 不过分到不同的机子上安装的话就没有这个问题了.请问这是什么原因,应该不是端口占用吧,占用的话服务应该起不来. 解决方案 楼上这位哥哥你回答的这是什么?

lvs轮调的间隔时间太长,总是转发到同一台服务器上,过很久才能转发到另一台服务器

问题描述 lvs轮调的间隔时间太长,总是转发到同一台服务器上,过很久才能转发到另一台服务器 lvs轮调的间隔时间太长,总是转发到同一台服务器上,过很久才能转发到另一台服务器上,配置文件中的persisence_timeout=0已经注释.还是不行,哪位大神帮帮忙解决一下, 解决方案 我也碰到这个问题.不能刷一次交替一次.你解决了吗?