跳到主要内容

VPS:使用 Rsync 备份 Linux 服务器

本指南是针对以下产品创建的:

(不同供应商的产品可能会有所不同,但主要概念保持不变)

Rsync:

备份可以使用 Rsync 工具完成。
数据可以复制到本地系统的另一个目录/驱动器,或者复制到远程系统。

将数据复制到另一个本地目录或驱动器:

信息

注意:首次运行可能比后续运行耗时更长,具体取决于数据量。因为首次 Rsync 会同步所有数据,从第二次开始只同步发生变化的数据。

这样就创建了一个增量备份。

第一步

可以用以下命令安装 Rsync:

apt install rsync

安装完成后即可直接使用。

第二步

本例中,/home 下的 Client 文件夹将同步到 /home 下的 Backup 文件夹。

可以使用以下命令实现:

rsync -arz /home/Client /home/Backup

-a=归档模式,复制文件属性


-r=递归,子文件夹也会同步


-z=压缩,根据数据量/大小进行压缩

文件夹已成功同步。

如果现在删除了 client 文件夹中的某个文件,它仍会保留在备份文件夹中。
但因为文件应始终保持 1:1 同步,可以简单修改 rsync 命令,确保 client 文件夹中不再存在的数据也会从备份文件夹中删除。

修改后的命令是:

rsync -arz --delete /home/Client /home/Backup

-a=归档模式,复制文件属性


-r=递归,子文件夹也会同步


-z=压缩,根据数据量/大小进行压缩


--delete= 删除源目录中不存在但目标目录中仍存在的数据

第三步

为了避免每次都手动执行命令,可以将其放入 cron 任务中。
例如,设置每天凌晨 3 点执行备份:

打开 crontab -e:

输入数字 1 使用 nano 编辑器。
输入数字 2 使用 vim 编辑器。

用 nano 打开文件后,可以生成并输入 crontab。
你也可以用这个 生成器 来创建 crontab。

输入的 crontab 如下所示:

0 3 * * * rsync --progress -arz --delete -e  "ssh -i /home/sshkey/keybackup" /home/Client/ root@123.123.123.123:/home/Backup/Home-Server1/ >/dev/null 2>&1

每天凌晨 3 点执行该命令,自动创建备份。