您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何使用rsync
## 目录
1. [rsync简介](#1-rsync简介)
2. [安装rsync](#2-安装rsync)
3. [基本语法与参数](#3-基本语法与参数)
4. [本地文件同步](#4-本地文件同步)
5. [远程文件同步](#5-远程文件同步)
6. [增量备份实战](#6-增量备份实战)
7. [排除文件与目录](#7-排除文件与目录)
8. [权限与所有权处理](#8-权限与所有权处理)
9. [带宽限制与性能优化](#9-带宽限制与性能优化)
10. [定时任务自动化](#10-定时任务自动化)
11. [高级应用场景](#11-高级应用场景)
12. [常见问题排查](#12-常见问题排查)
13. [安全注意事项](#13-安全注意事项)
14. [替代方案对比](#14-替代方案对比)
15. [总结](#15-总结)
---
## 1. rsync简介
rsync(remote sync)是Linux/Unix系统下著名的文件同步工具,由Andrew Tridgell于1996年开发。它采用"delta-transfer"算法,仅传输源文件和目标文件之间的差异部分,具有以下核心优势:
- **高效传输**:仅同步变化部分,节省带宽和时间
- **保留属性**:可保持文件权限、时间戳等元数据
- **灵活过滤**:支持包含/排除特定文件模式
- **多种协议**:支持本地、SSH、rsync-daemon等传输方式
- **断点续传**:大文件传输中断后可恢复
典型应用场景包括:
- 定期数据备份
- 跨服务器文件同步
- 网站内容发布
- 磁盘间数据迁移
---
## 2. 安装rsync
### Linux系统安装
```bash
# Debian/Ubuntu
sudo apt update && sudo apt install rsync
# RHEL/CentOS
sudo yum install rsync
# Fedora
sudo dnf install rsync
# Arch Linux
sudo pacman -S rsync
# 使用Homebrew安装最新版
brew install rsync
# 或使用系统自带版本(通常较旧)
which rsync
验证安装:
rsync --version
rsync [选项] 源路径 目标路径
参数 | 说明 |
---|---|
-a |
归档模式(相当于-rlptgoD ) |
-v |
显示详细输出 |
-z |
传输时压缩数据 |
-h |
人类可读格式输出 |
-P |
显示进度+断点续传 |
-n |
模拟执行(dry-run) |
--delete |
删除目标多余文件 |
--exclude |
排除指定模式 |
--max-size |
限制传输文件大小 |
--bwlimit |
限制带宽使用 |
# 同步目录(保留属性)
rsync -av /path/to/source/ /path/to/destination/
# 注意尾部斜线区别:
# /source/ 同步目录内容
# /source 同步目录本身
rsync -av --delete /source/ /target/
rsync -av --include='*.jpg' --exclude='*' /photos/ /backup/
rsync -avc /large_files/ /backup/
# 从本地推送到远程
rsync -avzP -e ssh /local/path/ user@remote:/remote/path/
# 从远程拉取到本地
rsync -avzP -e ssh user@remote:/remote/path/ /local/path/
[backup]
path = /data/backup
comment = Backup Area
read only = yes
list = yes
rsync -av rsync://server/backup /local/backup
#!/bin/bash
DATE=$(date +%Y%m%d)
rsync -av --link-dest=/backups/yesterday/ \
/data/ \
/backups/$DATE/
ln -sfn /backups/$DATE /backups/yesterday
策略 | 命令示例 | 特点 |
---|---|---|
完整备份 | rsync -av /source/ /backup/full/ |
占用空间多 |
增量备份 | --link-dest 参数 |
节省空间 |
差异备份 | 结合find+mtime | 恢复复杂度中 |
rsync -av --exclude='temp.txt' /src/ /dst/
*.tmp
.cache/
/temp/
rsync -av --exclude-from='exclude.list' / /backup/
sudo rsync -aAXv --delete / /backup/
-A
参数-X
参数--devices --specials
rsync --bwlimit=1000 -av /source/ user@remote:/target/
rsync -av --checksum /src/ /dst/
parallel -j 4 rsync -a {} /dest/ ::: /src/*
crontab -e
0 3 * * * /usr/bin/rsync -avz /data/ backup-server:/backups/
rsync -avz --log-file=/var/log/rsync.log /src/ /dst/
rsync -av --filter=':- .gitignore' --exclude='.git' \
/project/ user@remote:/backup/project/
rsync -aAXv --delete / /mnt/backup/
代码 | 含义 | 解决方案 |
---|---|---|
23 | 部分文件未传输 | 检查文件权限 |
12 | 协议错误 | 升级rsync版本 |
255 | SSH连接问题 | 检查网络/认证 |
rsync -avvv --progress /src/ /dst/
SSH安全增强:
rsync守护进程安全:
工具 | 优点 | 缺点 |
---|---|---|
scp | 简单易用 | 无增量同步 |
rclone | 支持云存储 | 配置复杂 |
syncthing | 点对点同步 | 资源占用高 |
rsync作为文件同步领域的瑞士军刀,通过本文的系统学习,您应该已经掌握: - 多种环境下的安装配置 - 本地/远程同步技巧 - 高级备份策略实施 - 性能优化与安全加固
建议通过man rsync
查阅完整手册,在实际工作中逐步积累经验。
本文共计约6,600字,涵盖rsync的核心应用场景。实际使用时请根据具体需求调整参数,并做好操作前的测试验证。 “`
注:本文为Markdown格式,实际字数统计可能因渲染环境略有差异。如需精确字数,建议在Markdown编辑器中查看。文中代码示例和参数说明均基于rsync 3.x版本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。