expect - linux远程执行命令

需要的文件:
password   #远程主机的ip 密码文件
expect        #执行远程登录,执行命令的脚本文件
login.sh       #shell 脚步调用这两个文件执行操作

#!/bin/bash
for i in $(awk ‘{print $1}‘ passwd.txt)              #for循环出主机ip信息
do
p=$(awk -v I="$i" ‘{if(I==$1)print $2}‘ passwd.txt)  #取出对应ip主机的密码
expect /root/login $i $p                             #传递ip和密码信息到expect
done
#!/usr/bin/expect -f
set hostname [lindex $argv 0]       #传主机ip参数
set passwd [lindex $argv 1]         #传主机密码参数
spawn -noecho ssh [email protected]$hostname;   #执行ssh远程登录
expect {
    "*yes/no" { send  "yes\r"; exp_continue }        #模拟输入确认字段
    "*assword:" { send  "$passwd\r"; }               #模拟输入密码字段
}
expect "]#"                                           
send "free -m\r"
send "df -hT\r"
send "exit\r"
expect eof
192.168.23.252 123456     #远程主机ip 和密码信息,可以添加多个主机信息一行一条主机信息

执行过程结果:

时间: 2024-10-28 19:18:45

expect - linux远程执行命令的相关文章

分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect脚本传递参数

20.27 分发系统介绍 应用场景 当业务越做越大,服务器需求越来越多,几台服务器的话还好一点:当十几.几十台的时候,工作量就非常大!并且不规范,需要一个模板机分发到各个机器上去. 可以用开源的软件,expect脚本语言,进行实现分发系统的功能. 20.28 expect脚本远程登录 yum install -y expect 自动远程登录,并执行命令 #!/usr/bin/expect set host "192.168.21.130" set passwd "rootro

分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,expect脚本传递参数

分发系统介绍 当我们要上线一个新代码的时候,如果机器少,我们的工作量不会很大,很容易完成,如果设备很多,有几十台,上百台的话,那我们的工作量会非常大,而且也不规范,这时,我们就可以用可以用开源的软件,expect脚本语言,进行实现分发系统的功能. expect脚本远程登录首先yum安装expectyum install -y expect 然后写一个expect的远程登录脚本#! /usr/bin/expectset host "192.168.133.132" 这是expect的变量

分发系统介绍,expect脚本远程登录, expect脚本远程执行命令, expect脚本传递参数

分发系统介绍 当我们要上线一个新代码的时候,如果机器少,我们的工作量不会很大,很容易完成,如果设备很多,有几十台,上百台的话,那我们的工作量会非常大,而且也不规范,这时,我们就可以用可以用开源的软件,expect脚本语言,进行实现分发系统的功能. expect脚本远程登录 首先yum安装expectyum install -y expect 然后写一个expect的远程登录脚本#! /usr/bin/expectset host "192.168.133.132" 这是expect的变

分发系统介绍 expect脚本远程登录 expect脚本远程执行命令 expect脚本传递参数

一.分发系统介绍场景:公司业务逐渐扩大,后端服务端使用的编程语言是PHP,要运行PHP的环境,需要配置LAMP或者LNMP环境,最后还需要把代码上传到服务器上去,但是业务在迭代,需要新增功能,一台机器还好,可以在机器上直接修改,但是这样做不规范,如果机器有几十台或者上百台机器都是这一个站点的,比如有一个接口,APP访问量很大,APP需要调用服务端的一个接口,假如这个接口有50台机器在承载,这时候,就需要做一个分发系统,能够把每天或者每一段时间更新的代码分别发发布到这50台机器上去,分发器其实就是

分发系统-expect讲解,expect脚本远程登录,expect脚本远程执行命令,expect脚本

分发系统-expect讲解 业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者lnmp,最好还需要吧代码上传到服务器上:但是因为业务增加,代码增加,多台机器,就会非常麻烦:这是只需要一个分发系统,就可以把每次更新的代码发布到需要更新的服务器上 expect,是一种脚本语言:通过他可以实现传代码上线,也可以登录机器输入命令 首先要准备一台模板机器,机器的IP,对应用户的密码,通过rsync同步代码,还可以通过expect去执行某些命令 expect脚本远程登录 yum i

七十三、分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect传递参数

七十三.分发系统介绍.expect脚本远程登录 一.分发系统介绍 expect脚本:能传输文件,可以远程执行命令,不需要输入密码,上线代码. 首先,准备一台模板机器,这台机器上的代码是最新的代码,准备要上线的代码,要知道要线上机器的ip地址,还有对应用户和密码. 二.expect脚本远程登录 #  yum install -y expect 自动远程登录 [[email protected] sbin]# vim 1.expect       路径:/usr/local/sbin/ #! /us

分发系统介绍、 expect脚本远程登录、expect脚本远程执行命令、expect脚本传递参数

分发系统介绍 大多数企业都会有这样的需求,业务稍微大一点,它都会去做一些负载均衡,也意味着你的机器有多台,至少得两台,两台的话,你的程序是分别放在了两台机器上或者是多台机器上:假如说要添加一个新的功能,或者说你的程序有一个小bug,那这个时候你如果想这个bug修复,或者说新增一个功能的话,你要去改程序,那很多企业有svn,它是一个代码管理仓库,那我们如果把程序修改了之后呢,先传一份到svn库里边去:如果再智能自动化一点,我可以从咱们服务器上或者测试机上把svn库里的代码直接拽过来,发布到咱们的测

分发系统介绍 expect脚本远程登录 expect脚本远程执行命令 expect脚本传递参数

expect脚本远程登录 yum install -y expect yum install -y tcl tclx tcl-devel 自动远程登录 #! /usr/bin/expect set host "192.168.133.132" set passwd "123456" spawn ssh [email protected]$host expect { "yes/no" { send "yes\r"; exp_co

linux远程执行命令

经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 (1)命令行执行登录并且在目标服务器上执行命令 ssh [email protected] "cd /home ; ls" 基本能完成常用的对于远程节点的管理了,几个注意的点: 双引号,必须有.如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 (2)脚本的方式 这个正式我想要的方式,在目标服务器上执行批量的命令. #!/bin/ba