![使用 rsync 与 StrictHostKeyChecking 并查找远程超过 5 分钟的文件](https://linux22.com/image/671164/%E4%BD%BF%E7%94%A8%20rsync%20%E4%B8%8E%20StrictHostKeyChecking%20%E5%B9%B6%E6%9F%A5%E6%89%BE%E8%BF%9C%E7%A8%8B%E8%B6%85%E8%BF%87%205%20%E5%88%86%E9%92%9F%E7%9A%84%E6%96%87%E4%BB%B6.png)
我想使用 rsync 将文件从远程同步到本地目录。因此我使用严格主机密钥检查这样就无需输入密码。
现在我想只同步超过 5 分钟的文件。我想使用
find /path/to/folder/ -type f -mmin +5
我如何将其集成到我的远程程序中?
rsync -e "./ssh -i %syncclientkey% -o 'StrictHostKeyChecking no'" syncusr@%syncsrv:path/to/source path/to/destination
答案1
StrictHostKeyChecking
与无密码身份验证无关。其目的是发出正向确认的反向 DNS,以确保您确实连接到了目标服务器,并且没有使用 DNS 级劫持将您误导到另一台服务器。
要使用公钥认证,您必须遵循以下步骤:
- 使用以下方式创建新的公钥/私钥
ssh-keygen
- 使用以下命令将公钥复制到远程服务器
ssh-copy-id
关于问题的第二部分,rsync
它本身无法进行基于时间的选择。您必须通过 生成文件列表find
并将其传送到rsync
。
例如:find /path/to/folder/ -type f -mmin +5 -print0 | rsync -files-from=- -from0 syncusr@%syncsrv:path/to/source path/to/destination
但是,由于rsync
在仅传输更改的文件/增量方面非常高效,也许您可以完全跳过文件选择步骤,只需每 5 分钟同步整个文件夹即可。rsync
将仅同步/传输更改的文件(间隔 5 分钟,这意味着只会同步过去 5 分钟内更改的文件)。