[英]synchronise local directories over ssh
以下命令对单个文件非常有用:
scp your_username@remotehost.edu:foobar.txt /some/local/directory
我要做的是递归执行(即,对服务器上给定路径的所有子目录/子文件),合并文件夹并覆盖本地已经存在的文件,最后仅降低服务器上小于特定值的那些文件(例如10 mb)。
我该怎么办?
使用rsync。
您的命令可能如下所示:
rsync -az --max-size=10m your_username@remotehost.edu:foobar.txt /some/local/directory
-a
(归档模式-同步是递归的,转移所有权,属性,符号链接等) -z
(压缩转移)
--max-size
(仅复制最大大小的文件)
还有更多可能合适的标志。 查看文档以获取更多详细信息-http://linux.die.net/man/1/rsync
第一种选择:使用rsync
。
第二种选择,它不会成为一个班轮,但可以分三到四行完成:
使用ssh
在远程系统上创建tar归档文件。 使用scp
从远程系统复制tar。 在本地解压缩归档文件。
如果存档的创建变得有点复杂,并且涉及使用具有多个选项的find
和/或tar
,那么创建一个本地执行脚本,使用scp
将其上传到服务器上并随后使用ssh
远程执行是非常实用的。 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.