⑴在需要管理大量的Linux服务器时,可以这样做:
⑵.host.list
⑶... root abc
⑷... root abc
⑸... root abc
⑹... root abc
⑺... root abc
⑻... root abc
⑼... root abc
⑽... root abc
⑾我们把服务器的IP地址、端口号、用户名、密码一起放在host.list文件里,按行排列。
⑿下面来看看脚本文件main.exp
⒀#!/usr/bin/expect -f
⒁set ipaddress [lindex $argv ]
⒂set port [lindex $argv ]
⒃set username [lindex $argv ]
⒄set passwd [lindex $argv ]
⒅set timeout
⒆spawn ssh $ipaddress -p$port -l$username
⒇expect {
⒈“yes/no” { send “yes
⒉”;exp_continue }
⒊“password:” { send “$passwd
⒋expect -re “]($|# ”
⒌send “bash /root/test.sh
⒍expect -re “]($|# ”
⒎send “exit
⒏来做一个while循环:whi.sh
⒐#!/bin/bash
⒑host=“host.list”
⒒while read line
⒓expect main.exp $line
⒔done 《 $host
⒕把以上脚本都赋予执行权限,就可以了。
⒖案例:scp文件传输
⒗expect -c “
⒘spawn scp :/root/file.tgz /root
⒙expect {
⒚”*assword“ {set timeout ; send ”abc
⒛”yes/no“ {send ”yes
①“; exp_continue;}
②expect eof
③同样的原理,也可以做循环进行批量管理,还可以更简化脚本,也不多说明了,有兴趣的同学可以多尝试下。使用expect进行自动输入密码登陆,基本多用于批量管理。也还算方便。关于批量管理有多种方法,可以在主机之间建立ssh信任机制,也可以免密码登陆管理等。还可以使用sshpass(外部命令这个命令进行带密码在脚本里执行自动输入密码。
④上面就是Linux使用expect命令的方法介绍了,本文一共介绍了expect命令的三个操作实例,通过这些实例的练习,你一定能轻松掌握expect命令的用法。