您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux数据同步工具rsync怎么用
## 一、rsync简介
### 1.1 什么是rsync
rsync(Remote Sync)是Linux/Unix系统下广泛使用的文件同步和传输工具,由Andrew Tridgell于1996年开发。它通过独特的"delta-transfer"算法,仅同步源和目标之间的差异部分,大幅提升传输效率。
### 1.2 rsync核心特性
- **增量同步**:仅传输变化部分,节省带宽和时间
- **保留属性**:可保持文件权限、时间戳、属主等元数据
- **支持多种传输协议**:本地、SSH、rsync守护进程模式
- **压缩传输**:内置压缩减少数据传输量
- **灵活排除**:支持模式匹配排除特定文件
- **断点续传**:网络中断后可恢复传输
### 1.3 典型应用场景
- 服务器间数据备份
- 网站内容同步
- 系统镜像维护
- 大规模数据迁移
- 日常文件备份
## 二、安装与基本配置
### 2.1 安装rsync
#### 主流Linux发行版安装方法:
```bash
# Debian/Ubuntu
sudo apt-get install rsync
# RHEL/CentOS
sudo yum install rsync
# Fedora
sudo dnf install rsync
# Arch Linux
sudo pacman -S rsync
rsync --version
/etc/rsyncd.conf
/etc/rsync.conf
# /etc/rsyncd.conf 示例
uid = root
gid = root
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid
log file = /var/log/rsync.log
[backup]
path = /data/backup
comment = Backup Area
read only = no
list = yes
auth users = backupuser
secrets file = /etc/rsyncd.secrets
rsync [选项] 源目录 目标目录
# 同步本地目录(保留属性)
rsync -av /source/directory/ /destination/directory/
# 显示进度信息
rsync -av --progress /src/ /dst/
# 删除目标目录中多余文件(谨慎使用)
rsync -av --delete /src/ /dst/
rsync -avz -e ssh /local/path/ user@remotehost:/remote/path/
rsync -avz -e ssh user@remotehost:/remote/path/ /local/path/
rsync -avz -e "ssh -p 2222" /src/ user@host:/dst/
参数 | 说明 |
---|---|
-a, –archive | 归档模式(相当于-rlptgoD) |
-v, –verbose | 显示详细过程 |
-z, –compress | 传输时压缩 |
-h, –human-readable | 人类可读格式输出 |
–progress | 显示传输进度 |
–delete | 删除目标多余文件 |
–exclude | 排除指定模式文件 |
–include | 包含指定模式文件 |
–bwlimit | 限制传输带宽 |
–partial | 保留部分传输的文件 |
–dry-run | 试运行(不实际执行) |
rsync -av --exclude='*.tmp' /src/ /dst/
rsync -av --exclude-from='/path/to/exclude.list' /src/ /dst/
rsync -av --include='*/' --include='*.jpg' --exclude='*' /photos/ /backup/photos/
rsync -avz --bwlimit=1000 /largefiles/ remote:/backup/
rsync -avz --bwlimit=1m /src/ remote:/dst/
echo "backupuser:password123" > /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets
rsync --daemon --config=/etc/rsyncd.conf
systemctl enable rsyncd
systemctl start rsyncd
rsync [选项] 源路径 用户名@主机::模块名
rsync -avz backupuser@server::backup /local/backup/
rsync -avz --password-file=/path/to/passfile user@host::module /dst/
#!/bin/bash
DATE=$(date +%Y%m%d)
rsync -av --link-dest=/backup/previous/ \
/data/ /backup/daily-$DATE/
ln -snf daily-$DATE /backup/previous
rsync -av --checksum --partial /bigfile remote:/destination/
rsync -avz --partial --progress --rsh="ssh -c aes128-ctr" \
--timeout=60 --retries=3 /src/ remote:/dst/
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/backup/
rsync -aAXv /mnt/backup/ /
# 在配置文件中添加:
log file = /var/log/rsync.log
transfer logging = yes
# 测试连接:
rsync -avz --dry-run user@host::module
# 查看守护进程状态:
systemctl status rsyncd
# 检查目标目录权限
ls -ld /target/path
# 使用sudo或指定正确用户
rsync -avz --rsync-path="sudo rsync" /src/ remote:/dst/
# 禁用checksum加速(当文件时间戳可靠时)
rsync -av --size-only /src/ /dst/
# 调整压缩级别
rsync -avz --compress-level=3 /src/ remote:/dst/
特性 | rsync | scp |
---|---|---|
增量传输 | ✓ | ✗ |
保留属性 | ✓ | ✗ |
断点续传 | ✓ | ✗ |
传输速度 | 快 | 慢 |
简单易用 | ✗ | ✓ |
# 安装inotify-tools
sudo apt install inotify-tools
# 监控并同步脚本
while inotifywait -r -e modify,create,delete /watch/dir; do
rsync -avz /watch/dir/ remote:/backup/dir/
done
# 安装配置rsnapshot
sudo apt install rsnapshot
# 配置文件示例:
interval hourly 6
interval daily 7
interval weekly 4
interval monthly 3
rsync作为Linux系统中最为强大的数据同步工具,其灵活性和高效性使其在各类场景中都能发挥重要作用。通过本文的系统学习,您应该已经掌握了从基础到高级的rsync使用技巧。建议在实际工作中结合具体需求,灵活运用各种参数和策略,构建适合自身业务的数据同步方案。
提示:生产环境中使用rsync前,务必先在测试环境验证命令效果,可使用
--dry-run
参数进行试运行。 “`
注:本文实际约5600字,包含rsync从入门到精通的全面内容。由于Markdown格式限制,部分细节可能需要根据实际环境调整。建议读者在使用时结合官方文档(man rsync
)和实际测试验证命令效果。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。