我拥有远程计算机的 SSH 访问权限(使用 SSH 密钥对)。我想让远程计算机上的目录与给定的本地目录完全相等(单向同步)。文件相等性的检查应基于二进制文件内容的哈希值(而不是大小/日期)。
- 执行该操作的正确 rsync 命令是什么(不是 rsync 服务)?
- 如何处理文件权限?
- 如何处理文件修改日期?
- rsync 对失败如何反应以及退出代码是什么?
答案1
Rsync 检查文件的内容,而不是日期和/或文件大小。如果内容不同但路径和名称相同,则文件将被覆盖。
rsync options source destination
如果您想让远程目录与本地目录保持同步,rsync 的语法如下:
rsync -azh local_folder user@remote_server:/path/to/destination/
如果您想使用 SSH 作为传输协议,那么这对我来说是可行的:
rsync -azhe ssh local_folder user@remote_server:/path/to/destination
如何处理文件权限?如何处理文件修改日期?
该a
参数保留符号链接、文件权限、时间戳...如果您不想传输这些信息,只需将其从命令中排除,它将归您在 SSH 会话中登录的用户所有。
rsync 对失败如何反应以及退出代码是什么?
大多数命令/程序在成功时返回 0,在错误时返回其他数字。以下是 rsync 退出代码的列表以供参考