除了本地复制之外,rsync 还可以使用 ssh 执行远程复制。为此,需要在源目录或目标目录前面指定用户名和远程主机。例如,为了把一个目录同步到远程系统 user 上,执行以下命令:$ rsync --recursive dira user@remote:/backup/dirb。如果没有设置无密码 ssh 连接,那么会提示您输入远程密码。如果已经设置了连接,就可以用这种方法执行无人值守的夜间备份。
还可以对源目录使用相同的用户/密码组合,从而从远程源目录复制到本地目录:$ rsync --recursive user@remote:dira dirb。在通过 Internet 复制到远程系统时,还可以使用 --compress 选项在通过网络传输信息之前压缩信息,与原始字节复制相比,这可以大大提高效率。当然,在复制到远程系统时,如果文件包含敏感信息,可能不希望复制原始文件。在这种情况下,就需要使用加密。
加密同步涉及的文件
使用文件同步解决方案的常见原因之一是,为了创建文件的精确备份,以便在出现问题时能够复制或重建目录结构的元素。
rsync 工具非常适合完成这个任务,因为它只复制两个目录之间有差异的文件,效率很高。更有意义的是,因为 rsync 可以同步到远程系统,所以可以使用它自动创建远程备份,不需要把备份文件单独复制到远程系统。
这个过程的一个限制是,创建的拷贝是未加密的。如果要把文件复制到远程系统,而其他人也能够访问这个远程系统,就需要确保其他人无法读取这些文件(即使他们能够接触到这些文件)。
只使用 rsync 是无法加密文件的。也无法使用 rsync 的算法只加密在上一次同步操作之后修改过的文件。
但是,通过在脚本中执行 rsync,就可以用 rsync 的输出创建文件的辅助拷贝,然后对这个拷贝进行加密。
标签: