`
raojl
  • 浏览: 203242 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

远程批量部署

 
阅读更多
#!/usr/bin/expect  --


if { [llength $argv] != 2} {
	puts "usage: $argv0 ip \"command \[params\]\""
	exit 1
}


set maxRetry 1
for {set retryNum 0} {$retryNum<$maxRetry} {incr retryNum} {

spawn  /usr/bin/ssh [lindex $argv 0] [lindex $argv 1]

set timeout 60
expect {


 
	"yes/no)?" {
  
		send "yes\r"

		expect eof

		break

	}
  
	timeout {continue}
	eof {continue}

}
}

///////////////////////////////////////////////////////////
#!/usr/bin/expect --

set USER [exec whoami]

puts "pcp.sh..."
if { [llength $argv] < 2} { 

    puts "usage: $argv0 ip filename"  
    exit 1
}
set success 0

set maxRetry 5
for {set retryNum 0} {$retryNum<$maxRetry} {incr retryNum} {

    spawn  /usr/bin/scp -r [lindex $argv 1] [lindex $argv 0]:/home/${USER}

    set timeout 600
    expect { 

        "password:" {    	
            puts "input passwd"
            send "[lindex $argv 3]\r"	
            set timeout 600
            puts "try $retryNum"
            expect { 
                timeout {continue}
                eof {
                    set success 1
                    break
                }
            }
        }

        "yes/no)?" {
            puts "input yes"
            send "yes\r"
            expect "password:" {
                send "[lindex $argv 3]\r"
                set timeout 600
                expect { 
                    timeout {continue}
                    eof {
                        set success 1
                        break
                    }
                }
            }
        }

        timeout {continue}
        eof {
            set success 1
            break
        }
    }
}

puts "pcp sucess..."
if { $success==0 } {
    exit 1
}

 

function SetValue
{
        if [[ $# != 3 ]]
        then
            echo 'input: $1: filename, $2: keyname, $3:keyvalue'
            exit 1
        fi
        filename=$1
        keyname=$2
        keyvalue=$3     # ¿ÉÒÔΪ¿Õ

        # È·±£Ä¿±ê´æÔÚ
        targetLine=`grep "^${keyname}=" ${filename}`

        if [ "$targetLine" ]
        then
            # ÕâÀïÓÃ%×÷Ϊsed·Ö¸ô·û,ÒòΪkeyvalue¿ÉÄܺ¬ÓÐ/
            sed --in-place "s%^${keyname}=.*%${keyname}=${keyvalue}%" ${filename}
        else
            echo "${keyname}=${keyvalue}" >>${filename}
        fi

}

 

分享到:
评论

相关推荐

    powershell远程批量部署

    powershell实现的自动部署,研究了挺长时间,国内中文资料较少,绝对能让您收益。该脚本可以比较文件修改日期,从而实现只部署有更新的文件

    一款小巧的批量远程桌面管理软件

    一款小巧的批量远程桌面管理软件。软件比较小,单文件,无需安装。适用于需要经常连接多个远程桌面的情况。系统运维必需。

    Windows和linux批量部署脚本

    本资源包含两部分,Windows下基于批处理文件的自动部署脚本和Linux下基于expect脚本的自动部署脚本。主要用于大量服务器部署相同的脚本时,减轻人的工作量同时避免由于人为操作带来的各类错误。其中linux脚本需要...

    基于fastapi的爬虫可视化调度系统源码+项目部署说明.zip

    - [x] 远程批量部署和调用 - [x] 任务日志 - [x] 新增节点、测试节点 - [x] 主机节点详细指标 - [x] 国际化 // 进入模板目录 cd crawlfont // 安装项目依赖,等待安装完成之后,安装失败可用 cnpm 或 yarn npm ...

    Linux下的自动化和批量管理教程集锦

    教程名称:Linux下的自动化和批量管理教程集锦课程目录:【】linux下kickstart自动化部署安装【】Linux运维...远程批量修改linux服务器密码的脚本【IT教程 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    基于 fastapi 的爬虫可视化调度系统源码+项目说明.zip

    - [x] 远程批量部署和调用 - [x] 任务日志 - [x] 新增节点、测试节点 - [x] 主机节点详细指标 - [x] 国际化 - [ ] 权限管理 - [ ] 站内消息推送 ### 安装步骤 ``` // 把模板下载到本地 git clone ...

    shell自动化部署批量建立用户和批量SSH配置

    NULL 博文链接:https://qindongliang.iteye.com/blog/2117973

    硬件监测,批量自动化部署,远程KVM

    免费使用: 系统拥有服务器硬件监测、报表管理、告警管理、知识库管理、资产管理、工单管理、维保管理以及共享备件库、共享工程师库等功能。 专注于对X86服务器、工控机、网络设备、UPS、精密空调、打印机、复印机、...

    协通XT800远程助手 v4.3.3

    协通XT800远程助手(被控端),是一个部署便捷,...9、企业可快速、定向和批量部署被控端,部署包可设置初始授权码、隐私设置等众多高级设置项。使用方法:安装XT800远程助手版--运行--等待主控端(XT800企业版)连接。

    远程上传及同步文件夹工具,MS_Win7客户端到Linux服务器

    可用于部署和同步本地开发的服务器代码到远程服务器。 完全用Java开发的应用程序。下载后可直接运行.exe程序。可点击窗口底部的“帮助”按键查看使用帮助文档。 点击“关于...”按键可查看开发者和软件信息。有任何...

    协通XT800远程助手 v4.3.3.zip

    协通XT800远程助手(被控端),是一个部署...9、企业可快速、定向和批量部署被控端,部署包可设置初始授权码、隐私设置等众多高级设置项。 使用方法: 安装XT800远程助手版--运行--等待主控端(XT800企业版)连接。

    聚生网管远程管理工具

    通过RMT,只需要在局域网的任意一台电脑部署,不需要在客户端安装任何软件,网管人员可以实现对局域网电脑(单个或者批量)进行远程开机、远程关机、远程重启、远程注销等操作,方便了内网管理。RMTv1.0将集成到聚生...

    聚生网管远程管理工具 V1.0

    通过RMT,只需要在局域网的任意一台电脑部署,不需要在客户端安装任何软件,网管人员可以实现对局域网电脑(单个或者批量)的进行远程开机、远程关机、远程重启、远程注销等操作,方便了内网管理。RMT将集成到聚生...

    网管远程管理工具--聚生网管

    通过RMT,只需要在局域网的任意一台电脑部署,不需要在客户端安装任何软件,网管人员可以实现对局域网电脑(单个或者批量)的进行远程开机、远程关机、远程重启、远程注销等操作,方便了内网管理。RMT将集成到聚生...

    rtty非常适合远程维护您的或者您的公司的部署在全球各地的成千上万的Linux设备.rar

    远程批量执行命令 支持SSL:openssl, mbedtls, CyaSSl(wolfssl) SSL 双向认证(mTLS) 非常方便地上传和下载文件 根据设备ID访问不同的设备 支持 HTTP 代理 - 访问您的设备的 Web 基于Xterm.js的全功能终端 部署简单,...

    git自动更新远程仓库工具

    在对远程仓库做了git clone --mirror后,使用gitfetch工具实现git fetch的批量更新处理

    Storm综合案例二Storm集群向Kafka集群读取数据并写入MySQL远程模式

    今天接上文,来实现一个Storm数据流处理综合案例的第二部分,Storm集群向Kafka集群源源不断读取数据,通过MyBatis写入到MySQL数据库,并部署为远程模式 准备工作 参考上文准备工作 代码编写 思路:Storm集群从...

    Java 调用 Linux shell 命令执行框架:sshxcute

    sshxcute 就是这样一个框架工具集,它基于 JSCH 构建,允许工程师利用Java 代码通过 SSH 连接远程批量执行 Linux/UNIX 系统上的命令或者脚本,同时加入了判断成功与否,取回输出等多种实用功能。sshxcute 不管是针对...

    AntDeploy:用于将应用程序部署到远程服务器(iis,windowsService,linuxService,docker)的工具,支持netframwork和dotnetcore,支持回滚和增量部署

    蚂蚁部署 下载网址: : itemName 功能 支持docker一键部署(支持netcore) 支持iis一键部署(支持...支持Agent批量更新 (如要安装Windows服务器上代理服务)如何安装 为什么发布到【windows服务】或【linux服务】

    协通XT800免费远程控制软件 v5.0.4 企业版.zip

    XT800企业版是适用于企业的...1、可批量快速部署被控端、设定运维流程、指定运维关系、客服和客户管理、群发消息广播,增加便捷性和可控性。 2、快速部署的XT800远程助手版:可一键求助,企业品牌体现,提升品牌形象。

Global site tag (gtag.js) - Google Analytics