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}