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

发布网友

我来回答

3个回答

热心网友

在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 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

热心网友

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

#!/usr/bin/expect -f
set password 密码(如123456)
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 密码

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:允许压缩

一个完整的例子


声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com