如何在shell脚本中实现 scp 文件的时候不手动输入密码

在shell脚本中实现 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 [email protected]:/root/a.wmv /home/yangyz/

set timeout 300 

expect "[email protected]'s password:"

set timeout 300 

send "$password\r"

set timeout 300 

send "exit\r"

expect eof 

#upload

spawn scp /home/yangyz/abc.sql [email protected]:/root/test.sql 

set timeout 300 

expect "[email protected]'s password:"

set timeout 300 

send "$password\r"

set timeout 300 

send "exit\r"

expect eof

猜你喜欢

转载自blog.csdn.net/wangpanbaoding/article/details/83179122
今日推荐