歡迎您光臨本站 註冊首頁

使用expect批量查看多台機器的內存信息,如果密碼不同,應該如何修改腳本呢?

 
我之前在農信社的機房工作,那裡的領導曾經有一個需求,希望可以快速查看所有機器的配置信息,還有CPU、內存的運行狀態等信息。機房的伺服器在80台左右。
   前段時間我學了點expect腳本,便想利用這個腳本實現這個需求。昨天正式開始著手操作,感覺應該是遇到最後的問題了。
   批量查看多台機器的內存信息,如果多台機器的用戶密碼都一樣的話,我還能完成。但是,如果密碼不同,我就不知道腳本應該如何改了。
 腳本1:
 # cat iplist
 192.168.1.179 redhat
 192.168.1.180 redhat
 192.168.1.181 123456
 192.168.1.182 123456
 
 腳本2:
 # cat view_client_info.sh
 #!/bin/sh
 . /etc/init.d/functions
 for ip in `cut -d " " -f1 iplist`
 do
 expect lipeixue.exp $ip free -m
 done
 
 腳本3:
 # cat -n lipeixue.exp
      1  #!/usr/bin/expect
      2  if { $argc != 2 } {
      3   send_user "usage: expect scp-expect.exp ip command\n"
      4   exit
      5  }
      6
      7  #define var
      8  set ip
      9  set command
     10  set password
     11  #set password "123456"
     12
     13  spawn ssh -P22 root@$ip $command
     14  expect {
     15          -timeout 2
     16          "yes/no"    {send "yes\r";exp_continue}
     17          "*password" {send "password\r"}
     18          timeout {puts "timeout";return}
     19  }
     20  #expect eof
     21  exit
   我知道自己寫的腳本3是有問題的。
   可我就是不知道是否應該在第10行加變數,還是在別的位置提取腳本1里的密碼呢?
   我不知道,這密碼應該如何提取了?
   請各位幫忙提點一下,謝謝。



[火星人 ] 使用expect批量查看多台機器的內存信息,如果密碼不同,應該如何修改腳本呢?已經有823次圍觀

http://coctec.com/docs/service/show-post-17.html