系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux系統(tǒng)expect命令操作實(shí)例

Linux系統(tǒng)expect命令操作實(shí)例(2)

時(shí)間:2015-04-10 16:31:40 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請(qǐng)使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150410/44867.html 手機(jī)查看 評(píng)論

  案例2:批量處理

  在需要管理大量的Linux服務(wù)器時(shí),可以這樣做:

  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

  我們把服務(wù)器的IP地址、端口號(hào)、用戶名、密碼一起放在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”

  來做一個(gè)while循環(huán):whi.sh

  #!/bin/bash

  host=“host.list”

  while read line

  do

  expect main.exp $line

  done 《 $host

  把以上腳本都賦予執(zhí)行權(quán)限,就可以了。

  案例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

  ”

  同樣的原理,也可以做循環(huán)進(jìn)行批量管理,還可以更簡(jiǎn)化腳本,也不多說明了,有興趣的同學(xué)可以多嘗試下。使用expect進(jìn)行自動(dòng)輸入密碼登陸,基本多用于批量管理。也還算方便。關(guān)于批量管理有多種方法,可以在主機(jī)之間建立ssh信任機(jī)制,也可以免密碼登陸管理等。還可以使用sshpass(外部命令)這個(gè)命令進(jìn)行帶密碼在腳本里執(zhí)行自動(dòng)輸入密碼。

  上面就是Linux使用expect命令的方法介紹了,本文一共介紹了expect命令的三個(gè)操作實(shí)例,通過這些實(shí)例的練習(xí),你一定能輕松掌握expect命令的用法。

標(biāo)簽 命令

發(fā)表評(píng)論

0

沒有更多評(píng)論了

評(píng)論就這些咯,讓大家也知道你的獨(dú)特見解

立即評(píng)論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場(chǎng)

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄