当前位置: > shell编程 >

expect 实现 scp 文件时不用手动输入密码

时间:2014-09-10 18:24来源:linux.it.net.cn 作者:it

expect 实现 scp 文件时不用手动输入密码,有需要的朋友可以参考下。
 

复制代码代码如下:

#!/usr/bin/expect -f

set password 密码

spawn scp 用户名@目标机器ip:拷贝文件的路径 存放本地文件的路径 
set timeout 300 
expect "用户名@目标机器ip's password:" #注意:这里的“用户名@目标机器ip” 跟上面的一致
set timeout 300 
send "$password\r"
set timeout 300 
send "exit\r"

expect eof

附:scp参数
-r:拷贝目录
-c:允许压缩

一个完整的例子
 

复制代码代码如下:

#!/usr/bin/expect -f
set password 123456
#download
spawn scp root@192.168.1.218:/root/a.wmv /home/yangyz/
set timeout 300 
expect "root@192.168.1.218's password:"
set timeout 300 
send "$password\r"
set timeout 300 
send "exit\r"
expect eof

#upload
spawn scp /home/yangyz/abc.sql root@192.168.1.218:/root/test.sql 
set timeout 300 
expect "root@192.168.1.218's password:"
set timeout 300 
send "$password\r"
set timeout 300 
send "exit\r"
expect eof

 

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容