Chinaunix
标题:
怎么用 expect 获取到目的端的mac 地址,然后返回给源端?
[打印本页]
作者:
linfenghuaster
时间:
2011-08-10 14:26
标题:
怎么用 expect 获取到目的端的mac 地址,然后返回给源端?
A AUTOSSH 到 B ,然后执行命令获取到B的MAC地址,返回给A ,谢谢哈。
作者:
expert1
时间:
2011-08-10 14:39
回复
1#
linfenghuaster
置顶帖。
作者:
xiaopan3322
时间:
2011-08-10 23:00
回复 linfenghuaster
置顶帖。
expert1 发表于 2011-08-10 14:39
最近对tcl的热情很高嘛……
作者:
linfenghuaster
时间:
2011-08-10 23:12
没人回答啊,嗨。求高手
作者:
waker
时间:
2011-08-11 09:22
用autoexpect吧
作者:
expert1
时间:
2011-08-11 09:34
本帖最后由 expert1 于 2011-08-11 09:36 编辑
回复
4#
linfenghuaster
楼主少去清茶这个简单的代码你就会写了,给个sample。供你参考
#!/usr/bin/expect -f
set timeout 60
set pwd 123456
log_user 0
set ip 172.17.0.54
spawn ssh $ip
expect {
"not know" {send_user "[exec echo \"not know\"]";exit}
"(yes/no)?" {send "yes\r";exp_continue}
"password:" {send "$pwd\r"}
"
ermission denied, please try again." {
send_user "[exec echo \"Error
assword is wrong\"]"
exit }
}
expect "#"
send "ifconfig eth0|awk -F 'HWaddr' 'NR==1{print \$NF}'\r"
expect -re {.*\r\n(.*)\r\n} {
set mac $expect_out(1,string)
}
puts "host $ip's mac is : $mac"
expect "#"
send "exit\r"
expect eof
作者:
linfenghuaster
时间:
2011-08-11 22:53
回复
6#
expert1
我也做到这点了,关键是我在A端需要得到这个值,而不是只是在B端打印出来,不过还是谢谢。
作者:
iamkey9
时间:
2011-08-11 23:44
回复
7#
linfenghuaster
你先看看expect是用来干嘛的
作者:
linfenghuaster
时间:
2011-08-12 00:06
回复
8#
iamkey9
初学者嘛,不知道能不能这样用,如果高手说实现不了,那只好放弃了,用SCP实现?
作者:
iamkey9
时间:
2011-08-12 00:10
回复
9#
linfenghuaster
expert1 已经给你一段 expect 代码,他expect你能读一下代码然后自己做修正:-)
作者:
linfenghuaster
时间:
2011-08-12 00:13
回复
10#
iamkey9
在发帖前,我已经实现了,并且是我自己写的,谢谢,我也想过用SCP实现。我也用他的执行过,谢谢。
作者:
rdcwayx
时间:
2011-08-12 08:20
既然已经考虑用ssh/scp,就没必要用expect了
login serverA
ssh username@serverB ifconfig -a
复制代码
随后从输出结果中找mac地址
作者:
expert1
时间:
2011-08-12 09:21
直接无语
作者:
expert1
时间:
2011-08-12 09:29
回复
7#
linfenghuaster
你确定你看懂了我给你的代码的意思?
作者:
linfenghuaster
时间:
2011-08-12 23:09
回复
14#
expert1
好吧,我没看懂,反正我就是卡在这边了。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2