使用ssh,下载大量文件的最佳方法是什么

时间:2015-01-17 06:07:37

标签: download copy wildcard sftp transfer

我正在尝试编写一个bash脚本并且只使用ssh协议(sftp,scp),下载大量文件的最佳方法是什么。我说话就像10,000 +。

当我使用sftp bash脚本时会发生什么,sftp一次只能看到500个。以一种非常原始的方式,我一直在运行mget *.*,直到我下载了所有文件。

curl执行sftp但不支持通配符/多个文件。

wget执行多个文件但不执行sftp。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

scp recursive选项允许您下载和上传任意数量的文件。

scp -r root@my.web.server.com:/ var / www / * / var / www / local

#!/usr/bin/expect -f

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

请尝试以上操作,请参阅以下链接中的代码段 https://blogs.oracle.com/SanthoshK/entry/automate_linux_scp_command

如果服务器安装了rsync,您还可以查看rsync从服务器下载文件 的 rsync的

rsync -a username @ remote_host:/ home / username / dir1 place_to_sync_on_local_machine

答案 1 :(得分:0)

scp username@server:path/to/remote/dir/* /path/to/local/dir

如果我想做一切递归的话:

scp -r username@server:path/to/remote/dir/* /path/to/local/dir

这比我在小bash脚本中运行的好一百万倍。

非常感谢你。