CentOS使用expect批量远程执行脚本和命令
时间:2022-07-26
本文章向大家介绍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 102} {$i <= 112} {incr i} {
set ip "192.168.0.$i"
puts "$ip"
spawn ssh -o StrictHostKeyChecking=no $ip
set timeout 3
expect "root@$ip's password:"
set timeout 3
send "$passwordr"
set timeout 3
send "exitr"
spawn scp /home/install/rc.local root@$ip:/etc/rc.d/rc.local
set timeout 3
expect "root@$ip's password:"
set timeout 3
send "$passwordr"
set timeout 3
send "exitr"
spawn ssh root@$ip
expect {
"*yes/no" { send "yesr"; exp_continue}
"*password:" { send "$passwordr" }
}
expect "#*"
#要执行的命令
send "chmod +x /etc/rc.d/rc.localr"
send "rebootr"
send "exitr"
expect eof
}
以上就是本文的全部内容,希望对大家的学习有所帮助。
- hdu 1561 The more, The Better (树上背包)
- hdu 1829 A Bug's Life(分组并查集(偏移量))
- 前端游戏编程基础-如何实现Canvas图像的拖拽、点击等操作
- hdu 4081 Qin Shi Huang's National Road System (次小生成树)
- python读取系统信息
- hdu 3948 Portal (kusral+离线)
- linuxmint下pycharm创建桌面快捷方式
- hdu 1811 Rank of Tetris (并查集+拓扑排序)
- Pycharm常用技巧
- hdu 1598 find the most comfortable road(枚举+卡鲁斯卡尔最小生成树)
- 查询IP地址归属详情
- oracle commit详解
- hdu 4315 Climbing the Hill(阶梯博弈转nim博弈)
- iftop实时网络流量监控工具的安装使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何使用jMeter对需要CSRF token验证的OData服务进行并发性能测试
- 如何让SAP C4C自定义BO实现附件上传的功能
- SAP C4C基于自定义BO开发的OWL UI,如何实现动态访问控制
- 使用ABAP CL_HTTP_CLIENT类消费OData服务时,如何避免CSRF令牌验证失败错误
- 使用ABAP代码消费SAP Cloud for Customer的OData服务
- 使用SAP C4C OData notification实现CRM和C4C的数据同步
- 在nodejs服务器和ABAP服务器上使用jsonp
- 如何在Android平台上创建自定义的Cordova插件并使用SAP UI5消费
- 使用SAP BSP应用运行Vue
- 微信开发系列之六 - 使用微信OAuth2 API读取微信用户信息,显示在SAP UI5里
- 微信开发系列之五 - 将SAP UI5应用嵌入到微信中
- 微信开发系列之四 - 将SAP C4C的数据更改通知发送到微信公众号上
- 微信开发系列之三 - 在微信公众号里发起SAP C4C Account的创建
- 微信开发系列之二 - 在微信公众号里开发一个自动应答的图灵机器人
- 微信开发系列之一 - 微信公众号开发的开发环境搭建