以前用脚本scp文件时,都是以.ssh打通为基础的。今天需要在知道用户名密码但没打通机器的情况下传送文件,用到了expect,脚本如下:
#! /usr/bin/expect -f
spawn scp 1 koven@192.168.0.2:
expect "*password:"
send "koven\r"
expect eof
当然不只是scp,其它命令也可以用expect自动化
循环处理:
spawn scp 1 koven@192.168.0.2:
for { set i 1 } {$i<500} {incr i} {
expect {"*password:" {send "koven\r"}
"*(yes/no)*" {send "yes\r"}
}
}
注意大括号之间有空格
#! /usr/bin/expect -f
spawn scp 1 koven@192.168.0.2:
expect "*password:"
send "koven\r"
expect eof
当然不只是scp,其它命令也可以用expect自动化
循环处理:
spawn scp 1 koven@192.168.0.2:
for { set i 1 } {$i<500} {incr i} {
expect {"*password:" {send "koven\r"}
"*(yes/no)*" {send "yes\r"}
}
}
注意大括号之间有空格