Download 使用ssh,下载大量文件的最佳方式是什么
我正在尝试编写一个bash脚本,并且只使用ssh协议(sftp,scp),下载大量文件的最佳方式是什么。我说的就像10000+一样 当我使用sftp编写bash脚本时,sftp一次只能看到500个。以一种非常原始的方式,我一直运行Download 使用ssh,下载大量文件的最佳方式是什么,download,copy,wildcard,sftp,transfer,Download,Copy,Wildcard,Sftp,Transfer,我正在尝试编写一个bash脚本,并且只使用ssh协议(sftp,scp),下载大量文件的最佳方式是什么。我说的就像10000+一样 当我使用sftp编写bash脚本时,sftp一次只能看到500个。以一种非常原始的方式,我一直运行mget**,直到下载完所有文件 curl不支持sftp,但不支持通配符/多个文件 wget可以处理多个文件,但不能处理sftp 感谢您的帮助。scp递归选项允许您下载和上载任意数量的文件 scp-rroot@my.web.server.com:/var/www/*/v
mget**
,直到下载完所有文件
curl不支持sftp,但不支持通配符/多个文件
wget可以处理多个文件,但不能处理sftp
感谢您的帮助。scp递归选项允许您下载和上载任意数量的文件 scp-rroot@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"
}
}
也可以尝试上面的方法,下面链接中的代码片段
若服务器安装了rsync,您还可以查看rsync以从服务器下载文件
rsync
rsync-ausername@remote_host:/home/username/dir1在本地机器上放置到同步
scp username@server:path/to/remote/dir/* /path/to/local/dir
如果我想做任何事情:
scp -r username@server:path/to/remote/dir/* /path/to/local/dir
这比我在小bash脚本中运行的要好一百万倍
非常感谢。我从未见过500个文件的限制。您的SFTP服务器是什么?如果使用
ls
命令,会发生什么情况?它是否也只显示500个文件,即使有更多的文件?当您执行mget*
时,需要一段时间来加载,然后一次下载500个文件。服务器知道我已经下载了这500个,并打开了开关。当我再次运行mget*.
时,它将获得一个新的500个文件并再次运行。是否可以使用sftp命令提示符编写循环?因此,500限制是特意内置在sftp服务器中的一些自定义功能?这甚至比这更容易,因为我正在为无条目执行ssh密钥。。。所以expect不一定要用。我自己也没有用expect,但看到了帖子,我想这可能就是你要找的。我使用过ssh密钥,它们工作得很好。