首页 > 系统教程 > 操作系统 > 如何在Linux中使用RSYNC同步本地和远程目录

如何在Linux中使用RSYNC同步本地和远程目录

William Shakespeare
发布: 2025-03-21 09:12:14
原创
579 人浏览过

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地址和用户名代替占位符。

如何在Linux中使用RSYNC同步本地和远程目录

如何在Linux中使用RSYNC同步本地和远程目录

--delete的真实同步:

上面的命令反映了目的地的源。为了确保完整的同步(相同的内容),请使用--delete

 rsync -avzp -dlete〜/local/sync/ostechnix@192.168.1.12:〜/remote/sync/
登录后复制

这将从源中不存在的目标中删除文件。谨慎行事--delete以避免意外数据丢失。

如何在Linux中使用RSYNC同步本地和远程目录

重要考虑因素:

  • 目录路径后的落后斜线( / )至关重要。省略它们可能导致意外的目录创建。
  • 验证源目录和目标目录上的权限。
  • 建议对基于SSH密钥的身份验证进行自动同步,从而消除密码提示。

进一步的增强:

  • 基于密钥的SSH身份验证:生成SSH键对( ssh-keygen ),将公共密钥复制到远程服务器( ssh-copy-id ),并使用默认密钥路径或明确指定rsync命令中的私有密钥路径。

  • 实时同步(Inotify):rsyncinotifywait (从inotify-tools软件包)相结合,以在文件更改时触发同步。原始文档中提供了示例脚本。

  • 使用cron进行调度:使用cron自动同步以特定的间隔(例如,每日,每小时)运行。原始文档中提供了cron条目的示例。

  • 显式SSH密钥路径:虽然通常不需要默认的密钥位置,但明确指定脚本中的私钥路径提供了更多的控制。

结论:

Rsync是有效文件同步的强大工具。了解其选项并采用最佳实践,例如基于SSH的基于SSH的身份验证和计划的任务,可确保可靠且安全的数据管理。在将rsync命令应用于生产环境之前,尤其是在使用--delete选项时,请务必彻底测试。

以上是如何在Linux中使用RSYNC同步本地和远程目录的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板