CentOS 通过 expect 批量远程执行脚本和命令
我们有时可能会批量去操作服务器,比如批量在服务器上上传某个文件,安装软件,执行某个命令和脚本,重启服务,重启服务器等,如果人工去一台台操作的话会特别繁琐,并浪费人力。
这时我们可以使用expect,向目标服务器上发送指令去实现批量操作。
下面的例子将在centos上将一个文件,批量拷贝到其他服务商上,并执行相应的命令
1. 在centos上安装expect
yum install expect
2. 编写expect脚本 copyfilebatch.sh
下面的脚本将向内网IP为 192.168.0.102 至 192.168.0.112 的服务器分别拷贝一个rc.local文件,拷贝成功后,执行chmod命令,分别重启服务器
#!/usr/bin/expect -f
set password rootpassword for {set i } {$i <= } {incr i} {
set ip "192.168.0.$i"
puts "$ip" spawn ssh -o StrictHostKeyChecking=no $ip
set timeout
expect "root@$ip's password:"
set timeout
send "$password\r"
set timeout
send "exit\r" spawn scp /home/install/rc.local root@$ip:/etc/rc.d/rc.local
set timeout
expect "root@$ip's password:"
set timeout
send "$password\r"
set timeout
send "exit\r" spawn ssh root@$ip expect {
"*yes/no" { send "yes\r"; exp_continue}
"*password:" { send "$password\r" }
}
expect "#*" #要执行的命令
send "chmod +x /etc/rc.d/rc.local\r"
send "reboot\r"
send "exit\r" expect eof }
CentOS 通过 expect 批量远程执行脚本和命令的更多相关文章
- expect脚本同步文件   expect脚本指定host和要同步的文件  构建文件分发系统   批量远程执行命令
		
自动同步文件 #!/usr/bin/expect set " spawn rsync -av root@.txt /tmp/ expect { "yes/no" { se ...
 - expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统、批量远程执行命令
		
7月20日任务 20.31 expect脚本同步文件20.32 expect脚本指定host和要同步的文件20.33 构建文件分发系统20.34 批量远程执行命令扩展:shell多线程 http:// ...
 - Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件
		
一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...
 - SSH 无密码远程执行脚本
		
ssh无密码登录及远程执行脚本要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS7为例. 测试环境:机器A(10.0.224.80):机器B(192.16 ...
 - jenkins远程执行脚本时报Bad version number in .class file
		
这几天在学习jenkins的持续集成和部署,到了最后一步启动服务的时候,遇到了一个这个Bad version number in .class file的报错(如下图). 这个报错在最开始手工部署的时 ...
 - JSch远程执行脚本
		
JSch远程执行脚本 2017-02-24 在自动化测试的时候,需要远程操控服务器做一些操作,比如切日.起服务器.执行某些脚本.如何实现? 我们可以利用JSch,远程执行脚本.JSch是Java Se ...
 - Ansible 远程执行脚本
		
1. 先在服务端创建一个 shell 脚本 [root@localhost ~]$ cat /tmp/test.sh #!/bin/bash echo "hello world" ...
 - 批量远程执行linux服务器程序--基于paramiko(多线程版)
		
批量远程执行linux服务器程序--基于paramiko paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 具体安装方法这里不写,网 ...
 - SSH非交互式密码授权远程执行脚本
		
公司有上百台服务器,需要为每台服务器都执行一个脚本,因为所有服务器的账号密码都是一样的,所以可以不用搭建ansible等自动化运维工具,我们直接通过SSH远程执行即可完成. 本文以三台服务器为例,系统 ...
 
随机推荐
- 用python实现LBP特征点计算
			
import cv2 import numpy as np def olbp(src): dst = np.zeros(src.shape,dtype=src.dtype) for i in rang ...
 - TLS/SSL 梳理
			
数据加密通篇都是为了防止第三方的劫持伪造,保证连接安全, 毫无遮掩的明文传输只有民风淳朴的时候才是安全的. 先是一些基础的内容: 对称加密 最开始为了对数据进行加密,使用的是对称加密算法,即双方协商好 ...
 - python3:input() 函数
			
一.知识介绍: 1.input() 函数,接收任意输入,将所有输入默认为字符串处理,并返回字符串类型: 2.可以用作文本输入,如用户名,密码框的值输入: 3.语法:input("提示信息:& ...
 - c# 导出excel的两种常见方法
			
1,不是用第三方插件(html直接输出) StringBuilder ssb = new StringBuilder(); StringBuilder sb = new StringBuilder() ...
 - kafka启动报错"A broker is already registered on the path /brokers/ids/1"解决方案
			
问题 kafka挂掉后,启动报错日志如下 [2020-03-19 17:50:58,123] FATAL Fatal error during KafkaServerStartable startup ...
 - niginx:duplicate MIME type "text/html" in nginx.conf 错误(转载)
			
把nginx升级到最新以后,发现用原来的配置启动的时候会提示: duplicate MIME type "text/html" in /usr/local/nginx/conf/n ...
 - EPX-Studio调用Dll模块
			
procedure TForm1.BitBtn1Click(Sender: TObject); var REP : IExcelPanelXDisp; modulePath:string; begin ...
 - 全文搜索技术--Solr7.1之配置中文分析器
			
前言:中国文化博大精深,但是solr只能一个一个的识别,而是更加符合中国人的习惯,所以加了中文分析器. 1.安装中文分词器 第一步:把中文分词器(ik-analyzer-solr7-7.x.jar)/ ...
 - 内置函数---eval、exec、compile
			
eval() 将字符串类型的代码执行并返回结果 print(eval('1+2+3+4')) exec()将自字符串类型的代码执行 print(exec("1+2+3+4")) e ...
 - Java流中的map算子和flatMap算子的区别
			
map算子和flatMap算子 map和flatMap都是映射(转换),那么他们之间究竟有什么区别呢? 1.我们先简单了解下map算子: @org.junit.Test public void tes ...