RSYNC:一种强大的工具,用于同步本地和远程目录
Rsync是用于同步目录的强大且多功能的实用程序,有效地仅传输修改的文件部分。这使得它非常适合使用经常更新的文件管理大型目录,无论是在两台机器之间还是在单个系统之间。 SSH集成,数据压缩,文件属性保存(权限和时间戳)以及从源缺失的目的地删除文件的能力,从而增强了其灵活性。
Rsync命令结构:
rsync [options] [源] [目标]
密钥rsync选项:
-a
( --archive
):保留关键的文件元数据(符号链接,权限,时间戳)。-v
( --verbose
):提供详细的输出。-r
( --recursive
):递归处理目录。--delete
:从源中不在目的地中删除文件。真正的同步至关重要。-z
( --compress
):在传输过程中压缩数据,保存带宽。-h
( --human-readable
):以用户友好的格式显示文件大小和其他数值数据。-P
:组合--partial
(恢复中断的传输)和--progress
(显示转移进度)。同步方案和设置:
Rsync对于各种任务很有价值:将数据备份到远程服务器,跨机器共享文件,将代码部署到生产以及保持开发和分期环境之间的一致性。
对于本指南的示例,我们将使用:
本地系统: Debian 11桌面,本地目录: ~/local/sync/
远程系统: Debian 12服务器,远程用户: ostechnix
,远程IP: 192.168.1.12
,远程目录: ~/remote/sync/
基本用法:
假设安装了rsync
并正确设置了权限,则以下命令副本/将本地目录同步到遥控器:
rsync -avzp〜/local/sync/ostechnix@192.168.1.12:〜/remote/sync/
请记住,用您的实际路径,IP地址和用户名代替占位符。
与--delete
的真实同步:
上面的命令反映了目的地的源。为了确保完整的同步(相同的内容),请使用--delete
:
rsync -avzp -dlete〜/local/sync/ostechnix@192.168.1.12:〜/remote/sync/
这将从源中不存在的目标中删除文件。谨慎行事--delete
以避免意外数据丢失。
重要考虑因素:
/
)至关重要。省略它们可能导致意外的目录创建。进一步的增强:
基于密钥的SSH身份验证:生成SSH键对( ssh-keygen
),将公共密钥复制到远程服务器( ssh-copy-id
),并使用默认密钥路径或明确指定rsync
命令中的私有密钥路径。
实时同步(Inotify):将rsync
与inotifywait
(从inotify-tools
软件包)相结合,以在文件更改时触发同步。原始文档中提供了示例脚本。
使用cron
进行调度:使用cron
自动同步以特定的间隔(例如,每日,每小时)运行。原始文档中提供了cron
条目的示例。
显式SSH密钥路径:虽然通常不需要默认的密钥位置,但明确指定脚本中的私钥路径提供了更多的控制。
结论:
Rsync是有效文件同步的强大工具。了解其选项并采用最佳实践,例如基于SSH的基于SSH的身份验证和计划的任务,可确保可靠且安全的数据管理。在将rsync
命令应用于生产环境之前,尤其是在使用--delete
选项时,请务必彻底测试。
以上是如何在Linux中使用RSYNC同步本地和远程目录的详细内容。更多信息请关注PHP中文网其他相关文章!