系统之家 - 系统光盘下载网站!

当前位置:系统之家 > 系统教程 > Linux系统expect命令操作实例

Linux系统expect命令操作实例(2)

时间:2015-04-10 16:31:40 作者:qipeng 来源:系统之家 1. 扫描二维码随时看资讯 2. 请使用手机浏览器访问: https://m.xitongzhijia.net/xtjc/20150410/44867.html 手机查看 评论

  案例2:批量处理

  在需要管理大量的Linux服务器时,可以这样做:

  1.host.list

  192.168.1.1 22 root abc1

  192.168.1.2 22 root abc2

  192.168.1.3 22 root abc3

  192.168.1.4 22 root abc4

  192.168.1.5 22 root abc5

  192.168.1.6 22 root abc6

  192.168.1.7 22 root abc7

  192.168.1.8 22 root abc8

  我们把服务器的IP地址、端口号、用户名、密码一起放在host.list文件里,按行排列。

  下面来看看脚本文件main.exp

  #!/usr/bin/expect -f

  set ipaddress [lindex $argv 0]

  set port [lindex $argv 1]

  set username [lindex $argv 2]

  set passwd [lindex $argv 3]

  set timeout 30

  spawn ssh $ipaddress -p$port -l$username

  expect {

  “yes/no” { send “yes\r”;exp_continue }

  “password:” { send “$passwd\r” }

  }

  expect -re “\](\$|#) ”

  send “bash /root/test.sh \r”

  expect -re “\](\$|#) ”

  send “exit\r”

  来做一个while循环:whi.sh

  #!/bin/bash

  host=“host.list”

  while read line

  do

  expect main.exp $line

  done 《 $host

  把以上脚本都赋予执行权限,就可以了。

  案例3:scp文件传输

  expect -c “

  spawn scp root@192.168.1.188:/root/file1.tgz /root

  expect {

  \”*assword\“ {set timeout 300; send \”abc123456\r\“;}

  \”yes/no\“ {send \”yes\r\“; exp_continue;}

  }

  expect eof

  ”

  同样的原理,也可以做循环进行批量管理,还可以更简化脚本,也不多说明了,有兴趣的同学可以多尝试下。使用expect进行自动输入密码登陆,基本多用于批量管理。也还算方便。关于批量管理有多种方法,可以在主机之间建立ssh信任机制,也可以免密码登陆管理等。还可以使用sshpass(外部命令)这个命令进行带密码在脚本里执行自动输入密码。

  上面就是Linux使用expect命令的方法介绍了,本文一共介绍了expect命令的三个操作实例,通过这些实例的练习,你一定能轻松掌握expect命令的用法。

标签 命令

发表评论

0

没有更多评论了

评论就这些咯,让大家也知道你的独特见解

立即评论

以上留言仅代表用户个人观点,不代表系统之家立场

其他版本软件

热门教程

人气教程排行

Linux系统推荐

扫码关注
扫码关注

扫码关注 官方交流群 软件收录