1. 程式人生 > >expect - linux遠程執行命令

expect - linux遠程執行命令

expect

需要的文件:
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 root@$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 和密碼信息,可以添加多個主機信息一行一條主機信息

執行過程結果:

技術分享

本文出自 “jinchuang” 博客,請務必保留此出處http://jinchuang.blog.51cto.com/8690689/1947054

expect - linux遠程執行命令