码迷,mamicode.com
首页 > 系统相关 > 详细

expect - linux远程执行命令

时间:2017-07-13 16:05:42      阅读:238      评论:0      收藏:0      [点我收藏+]

标签: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远程执行命令

标签:expect

原文地址:http://jinchuang.blog.51cto.com/8690689/1947054

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!