CentOS使用expect批量远程执行脚本和命令

 更新时间:2020年06月25日 11:07:54   作者:devin_w_zhang  
这篇文章主要介绍了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 "$password\r"
  set timeout 3
  send "exit\r"


  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 "$password\r"
  set timeout 3
  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
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 在Linux系统上刷新DNS缓存的方法

    在Linux系统上刷新DNS缓存的方法

    DNS是互联网的一项服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用记住能够被机器直接读取的 IP 数串,但是,有时候我们可能需要刷新或清除 DNS 缓存,本文将详细介绍如何在Linux系统上刷新DNS缓存,需要的朋友可以参考下
    2024-06-06
  • Linux启动与停止spring boot工程的脚本示例

    Linux启动与停止spring boot工程的脚本示例

    这篇文章主要给大家介绍了关于Linux启动与停止spring boot工程的脚本的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Manjaro Linux安装singularity-container的解决方案

    Manjaro Linux安装singularity-container的解决方案

    这篇文章主要介绍Singularity容器在Manjaro平台的安装,以及一些常见的使用场景:拉取沙箱制作容器镜像、远程制作容器镜像以及修改容器镜像的方法,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • 最完的htaccess文件用法收集整理

    最完的htaccess文件用法收集整理

    最完的htaccess文件用法收集,这篇文章确实很详细,需要的朋友可以参考下
    2012-05-05
  • linux引导系统的方法分析

    linux引导系统的方法分析

    这篇文章主要介绍了linux引导系统的方法,总结分析了Linux引导系统相关原理、操作命令与注意事项,需要的朋友可以参考下
    2020-03-03
  • CentOS 6下root密码忘记的解决办法

    CentOS 6下root密码忘记的解决办法

    这篇文章主要为大家详细介绍了Centos6下root密码忘记的解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • vmware中CentOS7网络设置教程详解

    vmware中CentOS7网络设置教程详解

    这篇文章主要为大家详细介绍了vmware中CentOS7网络设置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Linux下执行java程序的方法

    Linux下执行java程序的方法

    本文通过图文并茂的方式给大家介绍linux下执行java程序的方法,想要在Ubuntu上运行java程序,可以将java程序编译成功后打包,然后在Ubuntu上用命令执行jar文件,具体详情请参考本文
    2016-10-10
  • Apache Doris基础简介

    Apache Doris基础简介

    Apache Doris 是一个现代化的 MPP(Massively Parallel Processing,即大规模并行处理)分析型数据库产品,这篇文章主要介绍了Apache-Doris基础概念,需要的朋友可以参考下
    2024-03-03
  • 比较详细的基于CentOS的WWW服务器架设指南

    比较详细的基于CentOS的WWW服务器架设指南

    本文参考了网上高手的教程和结合自己的实践经验而来。网上关于LAMP安装配置的教程虽然很多,但长篇大论的让你抓不到重点,短小精悍的对新手来说又难了点,所以初次配置时最容易在某个环节卡住,从而打击了学习的激情或者耽误了宝贵的时间。于是就整理出这个学习笔记。如果文中有错误的地方,恳请大家指正,不要误导了初学者。
    2008-06-06

最新评论