expect - linux遠程執行命令
阿新 • • 發佈:2017-07-13
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遠程執行命令