Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 通过ssh同步本地目录_Unix_Ssh_Local Storage_Sync - Fatal编程技术网

Unix 通过ssh同步本地目录

Unix 通过ssh同步本地目录,unix,ssh,local-storage,sync,Unix,Ssh,Local Storage,Sync,对于单个文件,以下命令非常适合我: scp your_username@remotehost.edu:foobar.txt /some/local/directory 我要做的是递归操作(即,对于服务器上给定路径的所有子目录/子文件),合并文件夹并覆盖本地已经存在的文件,最后仅向下放置服务器上小于某个值(例如10 mb)的文件 我该怎么做呢?第一个选项:使用rsync 第二种选择,它不是一行,但可以分为三行或四行: 使用ssh在远程系统上创建tar存档。 使用scp从远程系统复制tar。 在本

对于单个文件,以下命令非常适合我:

scp your_username@remotehost.edu:foobar.txt /some/local/directory
我要做的是递归操作(即,对于服务器上给定路径的所有子目录/子文件),合并文件夹并覆盖本地已经存在的文件,最后仅向下放置服务器上小于某个值(例如10 mb)的文件


我该怎么做呢?

第一个选项:使用
rsync

第二种选择,它不是一行,但可以分为三行或四行:

使用
ssh
在远程系统上创建tar存档。 使用
scp
从远程系统复制tar。 在本地卸载存档

如果归档文件的创建变得有点复杂,并且需要使用带有多个选项的
find
和/或
tar
,那么创建一个在本地执行的脚本是非常实际的,使用
scp
将其上载到服务器上,然后使用
ssh
使用rsync>远程执行

您的命令可能如下所示:

rsync -az --max-size=10m your_username@remotehost.edu:foobar.txt /some/local/directory
-a
(存档模式-同步是递归的,传输所有权、属性、符号链接等)
-z
(压缩传输)

--最大大小
(仅将文件复制到特定大小)


可能还有更多适合的旗帜。查看文档以了解更多详细信息-

这的确是一个不错的选择,但它没有考虑到我想要删除大文件这一事实。有什么想法吗?对当前目录中小于4k的文件进行tar(您可以将其放入文件中,传输到远程主机并使用ssh在那里执行):
tar cf a.tar${find.-type f-size-4096c}