当前位置: 首页 > ops >正文

Linux 下 rsync 工具详解与实用指南

Linux 下 rsync 工具详解与实用指南

一、什么是 rsync?

rsync(remote sync)是 Linux/Unix 系统下常用的数据同步和备份工具。它可以高效地在本地与远程主机之间同步文件和目录,支持增量同步、断点续传、权限保留等功能,是数据迁移、备份、镜像的利器。


二、rsync 的基本语法

rsync [选项] 源路径 目标路径
  • 源路径和目标路径可以是本地路径,也可以是远程路径(格式为 user@host:/path)。
  • 常用选项如下:
选项含义
-a归档模式,等同于 -rlptgoD,常用于备份
-v显示详细过程(verbose)
-z传输时压缩数据
-P显示进度,并支持断点续传
-r递归复制子目录
-u只同步源比目标新的文件
–delete删除目标目录中源目录已删除的文件
-e指定远程 shell,如 ssh

三、常见用法示例

1. 本地目录同步

/home/user/data/ 同步到 /backup/data/

rsync -av /home/user/data/ /backup/data/

注意:源路径末尾的 / 表示同步目录内容,不加 / 表示连目录本身一起同步。

2. 本地与远程主机同步

将本地目录同步到远程服务器:

rsync -avz /home/user/data/ user@remote_host:/data/backup/

将远程服务器目录同步到本地:

rsync -avz user@remote_host:/data/backup/ /home/user/data/

3. 只同步新文件或有变动的文件

rsync -avu /home/user/data/ user@remote_host:/data/backup/

4. 显示同步进度

rsync -avzP /home/user/data/ user@remote_host:/data/backup/

5. 删除目标端多余文件(保持两端完全一致)

rsync -avz --delete /home/user/data/ user@remote_host:/data/backup/

6. 通过指定端口的 SSH 进行同步

rsync -avz -e 'ssh -p 2222' /home/user/data/ user@remote_host:/data/backup/

四、rsync 的典型应用场景

  1. 网站数据备份:定期将网站目录同步到备份服务器。
  2. 日志归档:将生产服务器日志同步到本地分析服务器。
  3. 多机文件分发:将同一份代码或数据分发到多台服务器。
  4. 断点续传大文件:大文件同步中断后可继续传输,无需重头再来。

五、rsync 的注意事项

  • 权限问题:使用 rsync 时,确保有足够的读写权限。
  • 防火墙与端口:远程同步时,目标主机需开放 SSH 端口(默认22)。
  • 安全性:建议通过 SSH 通道加密传输数据,避免明文泄露。
  • 定时任务:可结合 crontab 实现定时自动同步。

六、进阶用法

1. 排除某些文件或目录

rsync -av --exclude 'tmp/' --exclude '*.log' /home/user/data/ user@remote_host:/data/backup/

2. 只同步指定类型文件

rsync -av --include '*.jpg' --exclude '*' /home/user/photos/ user@remote_host:/photos/backup/

3. 使用 rsync 守护进程(适合大规模分发)

可配置 /etc/rsyncd.conf,通过 rsync:// 协议进行同步,适合大规模分发和镜像站点搭建。


七、常见问题与排查

  • rsync: command not found
    需先安装:sudo apt install rsyncsudo yum install rsync
  • Permission denied
    检查 SSH 密钥、账号权限、目录权限
  • 同步慢
    可加 -z 压缩,或排查网络带宽

八、总结

rsync 是 Linux 下极为强大的文件同步工具,支持本地与远程、单向与双向、增量与全量等多种同步方式。掌握 rsync,可以大大提升你的数据管理和运维效率。

建议:

  • 日常备份、迁移、分发文件时优先考虑 rsync
  • 结合脚本和定时任务,实现自动化运维

如有更复杂的 rsync 场景或脚本需求,欢迎留言交流!

http://www.xdnf.cn/news/7434.html

相关文章:

  • 记录学习的第三十六天
  • 《量子雷达》学习(1) 2025.5.20
  • 服务器操作系统时间同步失败的原因及修复
  • Linux:进程信号---信号的概念与产生
  • 安装PostgresSQL
  • 每日Prompt:双重曝光
  • leetcode 旋转数组 java
  • Trae 04.22版本深度解析:Agent能力升级与MCP市场对复杂任务执行的革新
  • 深度学习实战 04:卷积神经网络之 VGG16 复现三(训练)
  • 国标GB28181视频EasyGBS视频监控平台搭建城市交通道路可视化管理/道路视频巡检/应急监控指挥
  • 第1章Java程序设计概述
  • Oracle RAC 中的 RBAL 进程
  • Vue.js教学第七章:Vue 组件通信,Props 与自定义事件的深度解析
  • 使用 React PDF 构建 React.js PDF 查看器的指南
  • python学习day2
  • 幻觉、偏见与知识边界——认识并驾驭AI的固有缺陷
  • 怎么样进行定量分析
  • OV7670连接STM32F407VET
  • 第二道re
  • 网络工程师案例分析
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(24):受身形
  • 定积分,不定积分,变限积分和反常积分的对比记忆
  • solana钱包管理模块
  • Unity使用sherpa-onnx实现说话人识别
  • pinia.defineStore is not a function
  • 破解建筑/工业末梢能耗黑洞:智能分项计量改造方案
  • CS50x 01 c
  • 最小质因子之和(JAVA)线性筛
  • 内置分流器直流表:新能源高精度计量核心技术突破
  • Halcon设置不同分辨率来读取摄像头图片