rsync 检查/比较 server1:/data/archive/ 与 server2:/data/archive/ 并将文件同步到另一个目的地,例如 server2:/data/?

rsync 检查/比较 server1:/data/archive/ 与 server2:/data/archive/ 并将文件同步到另一个目的地,例如 server2:/data/?

这让我很烦恼。

我需要:

  1. 比较 server1:/data/archive/ 与 server2:/data/archive/ (通过 rsync、ssh 等)
  2. 不匹配的文件名将被复制(scp)到 server2:/data/

server1 和 server2 之间有 ssh、scp、rsync 访问。

答案1

假设用户“用户名”可以从 server1 通过 ssh 访问 server2,您可以在 server1 上运行以下命令,将 server1 上所做的更改同步到 server2:

rsync -nav /path/to/files/ username@server2:/path/to/files/

尾随的斜线很重要,请参阅man rsync详细信息。

本例中使用的选项为:n = 试运行,仅报告将要执行的操作,而不实际执行 a = 存档模式,保留所有权详细信息、链接等 v = 详细

一旦您满意它正在执行您想要的操作,您可以删除 n 标志。

查看man rsync更多选项,如--exclude 和--delete,用于压缩的-z 也可能有用。

相关内容