# Linux 备份(Rsnapshot)
参考链接
参考链接 2
# 安装
apt install rsnapshot rsync
# 修改配置文件
vim /etc/rsnapshot.conf
特别注意配置文件对 tab 有着严格的要求,建议复制内部自带的 tab 进行编写
- 编写配置
snapshot_root
指定一个备份目录cmd_ssh
允许远程备份(直接取消注释即可)指定备份保留数量
如下所示,其中的
hourly
参数是名称,后面数值对应备份保留数量对于备份,采用的是增量备份,无需担心过多的频率带来的额外空间开销
#########################################
# BACKUP INTERVALS #
# Must be unique and in ascending order #
# i.e. alpha, beta, gamma, etc. #
#########################################
retain hourly 6
retain daily 5
retain weekly 3
retain monthly 2
指定当前服务器的 SSH 端口
若更改了 SSH 默认端口,需要指定远程备份服务器的端口号,否则不变即可
ssh_args -p xxxx
备份目录
对于本地备份,直接指定路径即可
注意最后要添加 / 进行路径闭合,不然语法检查不通过
# 本地备份路径
backup / localhost/
backup /etc/ localhost/
# 远程备份
backup [email protected]:/home/ /data/backup/
# 排除不需要的目录,多个可用逗号隔开
backup / localhost/ exclude=/mnt1,exclude=/mnt2,exclude=/mnt3
配置概览
config_version 1.2
snapshot_root /mnt3/back_up/
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_logger /usr/bin/logger
retain hourly 6
retain daily 5
retain weekly 3
retain monthly 2
verbose 2
loglevel 3
lockfile /var/run/rsnapshot.pid
backup / localhost/ exclude=/mnt1,exclude=/mnt2,exclude=/mnt3
参数解释
config_version 1.2
= 配置文件版本snapshot_root
= 存储快照的备份目的地cmd_cp
= 复制命令的路径cmd_rm
= 删除命令的路径cmd_rsync
= rsync 的路径cmd_ssh
= SSH 路径cmd_logger
= shell 命令接口到 syslog 的路径cmd_du
= 磁盘使用命令的路径interval hourly
= 要保留多少小时的备份。interval daily
= 要保留多少每日备份。interval weekly
= 要保留多少每周备份。interval monthly
= 每月要保留多少备份。ssh_args
= 可选的 SSH 参数,例如不同的端口 (-p)verbose
= verboseloglevel
= loglevellogfile
= 日志文件的路径exclude_file
= 排除文件的路径(将更详细地解释)rsync_long_args
= 传递给 rsync 的长参数lockfile
= lockfilebackup
= 要备份的内容的完整路径,然后是放置的相对路径。
对配置文件的语法测试
rsnapshot configtest
测试当前配置,但不使其生效
rsnapshot -t hourly
# 执行备份
rsnapshot hourly
# 自动化流程
使流程自动化,你需要安排 rsnapshot 以一定的时间间隔运行 Cron. 默认情况下,rsnapshot 自带 cron 文件在 /etc/cron.d/rsnapshot
,如果它不存在,则创建一个并向其添加以下几行。
# This is a sample cron file for rsnapshot. | |
# The values used correspond to the examples in /etc/rsnapshot.conf. | |
# There you can also set the backup points and many other things. | |
# | |
# To activate this cron file you have to uncomment the lines below. | |
# Feel free to adapt it to your needs. | |
0 */12 * * * root /usr/bin/rsnapshot hourly | |
30 3 * * * root /usr/bin/rsnapshot daily | |
15 3 * * 1 root /usr/bin/rsnapshot weekly | |
30 2 1 * * root /usr/bin/rsnapshot monthly |
实际上可以直接输入
crontab -e
之后直接编辑即可