下面的命令对我的作品很大的单个文件的本地目录:同步通过ssh
scp [email protected]:foobar.txt /some/local/directory
我想要做的就是做递归(即所有子目录/服务器上的指定路径的子文件) ,合并文件夹并覆盖本地已存在的文件,最后只下载服务器上小于特定值(例如10 MB)的文件。
我该怎么做?
下面的命令对我的作品很大的单个文件的本地目录:同步通过ssh
scp [email protected]:foobar.txt /some/local/directory
我想要做的就是做递归(即所有子目录/服务器上的指定路径的子文件) ,合并文件夹并覆盖本地已存在的文件,最后只下载服务器上小于特定值(例如10 MB)的文件。
我该怎么做?
使用rsync。
你的命令很可能是这样的:
rsync -az --max-size=10m [email protected]:foobar.txt /some/local/directory
-a
(归档模式 - 同步是递归的,所有权转移,属性,除其他事项外符号连接) -z
(压缩传输)
--max-size
(仅复制文件达到一定大小)
还有很多可能适合的标志。检查文档的更多细节 - http://linux.die.net/man/1/rsync
第一个选项:使用rsync
。
第二个选项,并且它不会是一个衬垫,但在三条,四线来完成:
创建使用ssh
在远程系统上的tar归档。 将远程系统中的tar复制到scp
。 在本地解压归档。
如果归档文件的创建变得有点复杂,使用find
和/或tar
几个选项还是比较实用的,以创建一个脚本这将做局部,用scp
上传在服务器上涉及,才把用ssh
远程执行。
这确实是一个不错的选择,但它没有考虑到我想摆脱大文件的事实。有任何想法吗? – user2295350
要为当前目录中小于4k的文件(可以放在一个文件中,传输到远程主机并使用ssh在那里执行)tar文件:tar cf a.tar $ {find。 -type f -size -4096c}' – piokuc