当前位置:首页>Linux>从零搭建 Linux 文件备份同步:rsync 快速上手

从零搭建 Linux 文件备份同步:rsync 快速上手

  • 2026-10-11 07:14:12
从零搭建 Linux 文件备份同步:rsync 快速上手

告别 scp 的慢和不可靠,用 rsync 一行命令搞定安全备份

掌握 rsync 最常用的三种使用方式
独立完成服务器文件的远程备份同步
了解 rsync 和 scp 的本质区别

前置要求:一台有基本 Linux 使用经验的机器,知道命令行基本操作。

场景与目标

有一台远程服务器(比如云服务器),上面有应用日志
你想把这些日志定时备份到自己的本地电脑
以前用 scp,每次都要等传输完成,断了还得重来,还没进度反馈

目标:用 rsync 实现可靠的远程文件同步,要求支持断点续传、只同步变更部分,并且命令简单易用。

环境准备

工具
版本
说明
rsync
3.2+
大多数 Linux 发行版默认自带
SSH
OpenSSH
rsync 通过 SSH 传输数据

检查是否安装了 rsync:

bash
rsync --version

如果没装,CentOS 执行 yum install rsync,Ubuntu 执行 apt install rsync,搞定。

实操步骤

第一步:本地目录同步

先从一个最简单的场景开始——把 A 目录的文件同步到 B 目录。

bash
rsync -av /home/user/source/ /home/user/backup/

几个关键点:

-a 是归档模式,保留权限、时间戳、软链接等信息,等价于 -rlptgoD
-v 是详细输出,让你看到同步了哪些文件
源目录末尾的斜杠 / 很重要:有斜杠表示同步目录内容,没有斜杠表示同步目录本身
bash
# 有斜杠:同步 source 目录里的内容到 backuprsync -av /home/user/source/ /home/user/backup/# 无斜杠:在 backup 下创建一个 source 子目录rsync -av /home/user/source /home/user/backup/# 结果是 /home/user/backup/source/file1 ...

第二步:远程拉取——把服务器文件拉到本地

这是最常用的场景。把远程服务器的文件拉取到本地:

bash
rsync -avz -e ssh user@remote-server:/home/user/logs/ /home/local/backup/logs/

参数说明:

-z 是压缩传输,在网络传输时开启压缩,带宽低的时候效果明显
-e ssh 指定使用 SSH 协议连接,也可以不写,默认就是 SSH

执行后会提示你输入远程用户的密码。如果配置了 SSH 密钥认证,就可以免密操作。

免密配置(在本地机器执行):

bash
ssh-copy-id user@remote-server

配好之后,后面的同步命令就不再需要输入密码了。

第三步:远程推送——把本地文件推到服务器

方向反过来,把本地文件推到远程服务器:

bash
rsync -avz -e ssh /home/local/data/ user@remote-server:/home/user/backup/data/

注意对比第二步,命令几乎一样,只是源和目标的位置调换了。

第四步:增量同步——只传变化的文件

这是 rsync 的核心优势。第一次同步会全量传输,之后只同步变更过的文件:

bash
rsync -avz --delete -e ssh /home/local/data/ user@remote-server:/home/user/backup/data/

--delete 参数保证目标目录和源目录完全一致——源里删了的文件,目标也会跟着删

提示

--delete 比较激进,用之前想清楚。如果你只想同步新增和修改的文件,不做删除操作,去掉这个参数就行。

第五步:只同步特定类型的文件

配合 --include 和 --exclude 做精细控制:

bash
# 只同步 .log 文件rsync -avz --include="*.log" --exclude="*" -e ssh /home/user/logs/ user@remote-server:/backup/logs/

效果验证

同步完成后,检查一下:

bash
# 对比两个目录的差异diff -rq /home/local/data/ /home/remote/backup/data/# 查看同步文件的数量ls /home/remote/backup/data/ | wc -l

如果 diff 没有输出,说明两个目录内容一致,同步成功。

总结与进阶

这篇文章覆盖的五个步骤就是 rsync 日常最常用的功能:本地同步、远程拉取、远程推送、增量同步、过滤特定文件。掌握了这些,80% 的文件同步需求都能搞定。

进阶方向可以考虑:

结合 cron 设置定时同步(crontab -e 添加定时任务)
使用 rsync 守护模式,不需要 SSH,适合批量服务器同步
搭配 unison 做双向同步

最新文章

随机文章