Rsnapshot是一个用 Perl 编写的开源本地/远程文件系统备份实用程序,它利用Rsync和SSH的强大功能来创建 Linux/Unix 文件系统的计划增量备份。
Rsnapshot 仅占用单个完整备份和差异备份的空间,允许您将备份存储在本地驱动器、外部 USB 记忆棒、NFS 安装驱动器上,或通过SSH通过网络存储到另一台机器上。
在本文中,我们将引导您完成安装、设置和使用Rsnapshot创建每小时、每日、每周和每月的本地备份以及远程备份的过程。
在 Linux 中安装 Rsnapshot Backup
首先,您需要安装并启用 EPEL(企业 Linux 的额外软件包)存储库,因为基于 RHEL 的发行版默认不包含Rsnapshot。
sudo dnf install epel-release
sudo dnf install rsnapshot
在基于 Ubuntu 的发行版上,rsnapshot在默认存储库中可用,因此您可以使用apt 包管理器安装它:
sudo apt install rsnapshot
安装后,您可以通过检查版本来验证安装。
rsnapshot -v
设置 SSH 无密码登录
要备份远程 Linux 服务器,您需要配置 SSH,以便在备份服务器和远程机器之间实现无密码登录。
按照以下命令生成 SSH 公钥/私钥对:
ssh-keygen -t rsa
接下来,将公钥复制到远程服务器:
ssh-copy-id user@remote-server
在 Linux 中配置 Rsnapshot
rsnapshot的配置文件位于,使用nano或vim/etc/rsnapshot.conf等文本编辑器打开此配置文件:
sudo nano /etc/rsnapshot.conf
或者
sudo vi /etc/rsnapshot.conf
您需要配置的一些重要设置包括:
快照备份目录
要设置存储备份的目录,您需要编辑snapshot_root配置文件中的行。
snapshot_root /data/backup/
设置备份间隔
Rsnapshot 支持多种备份间隔,例如每日、每周和每月。您可以通过取消注释以下行来设置备份频率:
interval hourly 6
interval daily 7
interval weekly 4
interval monthly 3
设置备份目录
要备份本地目录,请添加目录路径。
backup /home/ localhost/
backup /etc/ localhost/
对于远程备份,请指定要备份的远程服务器和目录,如下所示:
backup root@remote-server:/home/ /data/backup/
启用远程备份
要通过 SSH 启用远程备份,请取消注释该cmd_ssh行:
cmd_ssh /usr/bin/ssh
如果您更改了默认 SSH 端口,请更新该ssh_args行以反映自定义端口(例如,端口 7851):
ssh_args -p 7851
排除文件和目录
您可以通过创建排除文件来排除某些文件和目录的备份。
sudo nano /data/backup/exclude.txt
按以下格式添加排除项:
- /var/cache
- /tmp
+ /etc
+ /home
在您的rsnapshot.conf文件中,引用排除文件:
exclude_file /data/backup/exclude.txt
配置 Rsnapshot 后,通过运行以下命令验证您的设置是否正确:
sudo rsnapshot configtest
您应该会看到消息“ Syntax OK ”。如果有任何错误,请先修复,然后再继续。
最后,您可以使用要备份的间隔的命令手动运行Rsnapshot :
sudo rsnapshot hourly
使用 Cron 自动化 Rsnapshot
要自动执行备份过程,请通过将以下内容添加到/etc/cron.d/rsnapshot文件来配置 cron 作业以特定间隔运行 Rsnapshot:
0 */4 * * * root /usr/bin/rsnapshot hourly
30 3 * * * root /usr/bin/rsnapshot daily
0 3 * * 1 root /usr/bin/rsnapshot weekly
30 2 1 * * root /usr/bin/rsnapshot monthly
设置 Rsnapshot 报告
Rsnapshot 包含一个通过电子邮件发送备份报告的脚本。要进行设置,请复制脚本并使其可执行:
sudo cp /usr/share/doc/rsnapshot/utils/rsnapreport.pl /usr/local/bin/
sudo chmod +x /usr/local/bin/rsnapreport.pl
现在,编辑您的rsnapshot.conf文件并将标志添加–stats到以下rsync_long_args部分:
rsync_long_args --stats --delete --numeric-ids --delete-excluded
然后,将报告添加到您的 cron 作业以通过电子邮件发送报告:
0 */4 * * * root /usr/bin/rsnapshot hourly 2>&1 | /usr/local/bin/rsnapreport.pl | mail -s "Hourly Backup Report" you@example.com
监控 Rsnapshot 备份
您可以通过检查日志文件来监控备份。默认情况下,Rsnapshot 将备份活动记录在/var/log/rsnapshot.log中。
cat /var/log/rsnapshot.log
Rsnapshot是管理 Linux 系统备份的绝佳选择。通过高效使用rsync,您可以轻松地在本地和远程备份文件。