首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用shell脚本自动传输scp文件

使用shell脚本自动传输scp文件
EN

Stack Overflow用户
提问于 2009-08-28 11:46:45
回答 11查看 377.3K关注 0票数 88

在我的unix系统上,我的一个目录中有n个文件。有没有办法编写一个there脚本,通过scp将所有这些文件传输到指定的远程系统。我将在脚本中指定密码,这样就不必为每个文件输入密码。

EN

回答 11

Stack Overflow用户

发布于 2013-04-25 04:32:11

使用SSH密钥而不是在shell脚本中硬编码密码,这样更容易,也更安全。

代码语言:javascript
复制
$ scp -i ~/.ssh/id_rsa *.derp devops@myserver.org:/path/to/target/directory/

假设您的私钥位于~/.ssh/id_rsa,并且可以使用*.derp过滤要发送的文件

要生成公钥/私钥对:

代码语言:javascript
复制
$ ssh-keygen -t rsa

上面将生成两个文件,~/.ssh/id_rsa (私钥)和~/.ssh/id_rsa.pub (公钥)

要设置SSH密钥以供使用(一次性任务):复制~/.ssh/id_rsa.pub的内容,并将其粘贴到myserver.org服务器中~devops/.ssh/authorized_keys的新行中。如果~devops/.ssh/authorized_keys不存在,请随意创建它。

here上提供了一个清晰的操作指南。

票数 94
EN

Stack Overflow用户

发布于 2011-12-16 08:34:37

代码语言:javascript
复制
#!/usr/bin/expect -f

# connect via scp
spawn scp "user@example.com:/home/santhosh/file.dmp" /u01/dumps/file.dmp
#######################
expect {
  -re ".*es.*o.*" {
    exp_send "yes\r"
    exp_continue
  }
  -re ".*sword.*" {
    exp_send "PASSWORD\r"
  }
}
interact

http://blogs.oracle.com/SanthoshK/entry/automate_linux_scp_command

票数 42
EN

Stack Overflow用户

发布于 2015-11-16 14:32:47

你为什么不试试这个呢?

代码语言:javascript
复制
password="your password"
username="username"
Ip="<IP>"
sshpass -p "$password" scp /<PATH>/final.txt $username@$Ip:/root/<PATH>
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1346509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档