作者信息:https://home.cnblogs.com/u/huangjiabobk

在Linux中,如何使用rsync进行增量备份?

在Linux中,rsync是一款强大的文件同步工具,它支持本地和远程文件系统之间的数据同步,并且特别擅长增量备份,因为它只会复制源目录与目标目录之间发生改变的内容,从而极大地节省了网络带宽和存储空间。下面是如何使用rsync进行增量备份的详细步骤:

1. 基础用法举例
本地增量备份
rsync -av --delete /source/directory /destination/directory
  • -a:归档模式,相当于 -rlptgoD,保持符号链接、文件权限、属主、属组、mtime等属性不变。
  • -v:详细输出模式,显示正在进行的操作。
  • --delete:删除目标目录中源目录不再存在的文件或子目录,保持两者同步。

这个命令会在 /destination/directory 中创建 /source/directory 的增量备份,仅复制自上次备份以来有变化或新增的文件。

远程增量备份
rsync -avz --delete user@remote_host:/source/directory /local/destination/
  • -z:启用压缩,减小传输期间的数据量。
  • user@remote_host:/source/directory 是远程服务器上需要备份的目录。

这个命令会通过SSH连接远程服务器,将远程服务器上的目录内容增量备份到本地机器的一个目录中。

2. 定期增量备份

通常,我们会借助cron定时任务来定期执行增量备份。例如,每日凌晨1点执行一次备份:

  1. 编辑cron计划任务(对于root用户,使用crontab -e;对于普通用户,使用crontab -e -u [username])。

  2. 添加一行类似这样的定时任务:

0 1 * * * rsync -avz --delete user@remote_host:/source/directory /local/backup/daily/

这意味着每天的凌晨1点,rsync将会执行一次增量备份。

3. 高级选项和注意事项
  • 硬链接备份:rsync可以配合硬链接技术(如rsnapshot工具)实现多版本备份,这样在连续几次备份后,相同未改变的文件只会存储一份,节省存储空间。
  • 排除文件和目录:可以通过 --exclude=PATTERN 参数排除不需要备份的文件或目录。
  • 备份一致性:对于数据库等需要一致性的备份,应该在备份之前先锁定数据库或获取一致性快照,然后再执行rsync备份。
  • 带宽限制:如果需要在网络繁忙时段限制rsync的带宽使用,可以使用 --bwlimit=KBPS 参数设置最大传输速率。
  • 密码less登录:如果经常需要执行远程备份,为了避免每次手动输入密码,可以设置SSH密钥对验证以实现无密码登录。
  • 增量备份脚本:对于更复杂的备份策略,可以编写包含额外逻辑的shell脚本来控制rsync的行为,比如在备份前后执行清理、验证等操作。
posted @ 2024-03-19 11:19  黄嘉波  阅读(755)  评论(0编辑  收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波