Centos7 Snapper快照备份

千磨万击还坚劲,任尔东西南北风。这篇文章主要讲述Centos7 Snapper快照备份相关的知识,希望能为你提供帮助。
Centos7 Snapper快照备份
必须是btrfs文件系统
yum install -y snapper
创建配置文件:
创建根目录快照配置文件
snapper -c config_name create-config -f btrfs /
也可以直接复制模版:
cp /etc/snapper/config-templates/default /etc/snapper/configs/config_name
创建快照:
snapper快照默认存储在子卷下面的 .snapshots 目录中
创建独立快照,描述为“初始化”
snapper -c config_name create -d " 初始化"
创建pre和post快照:
pre 修改前的文件系统快照,每一张前快照都有一个对应的post快照。
snapper -c config_name create -t pre
post修改后的文件系统快照
snapper -c config_name create -t post --pre-num 1
显示快照列表:
snapper -c config_name list
查看快照内容变化:
snapper -c config_name status 1..2
恢复快照:
snapper -c config_name undochange 1..2
删除快照:
snapper -c config_name delete 1 2
开启自动快照:
systemctl start snapper-timeline.timer
systemctl enable snapper-timeline.timer
开启自动清理快照:
systemctl start snapper-cleanup.timer
systemctl enable snapper-cleanup.timer
修改快照自动清理的参数
配置文件位置:/etc/snapper/configs/< 配置名称>
字段名功能
BACKGROUND_COMPARISON=" yes" 定义在创建前后快照后是否要在后台对他们进行比较
NUMBER_CLEANUP=" yes" 自动删除旧快照
NUMBER_MIN_AGE=" 1800" 快照自动删除前保留最小时限(秒)
NUMBER_LIMIT=" 30" 没有标记,保留最新的50个快照
NUMBER_LIMIT_IMPORTANT=" 10" 标记的,保留最新的10个快照
TIMELINE_CREATE=" yes" 每小时创建一个快照
TIMELINE_CLEANUP=" yes" 快照超出 TIMELINE_MIN_AGE时限时是否自动删除旧快照
TIMELINE_MIN_AGE=" 1800" 自动删除保留的最小时限(秒)
TIMELINE_LIMIT_HOURLY=" 3" 每小时:保留最近创建的十张快照
TIMELINE_LIMIT_DAILY=" 7" 每天:保留最近十天内每天创建的首张快照
TIMELINE_LIMIT_WEEKLY=" 0" 每周:保留最近十个月内每月的最后一天创建的首张快照
TIMELINE_LIMIT_MONTHLY=" 0" 每月:保留最近十个月内每月的最后一天创建的首张快照
TIMELINE_LIMIT_YEARLY=" 0" 每年:保留最后十年内每年的最后一天创建的首张快照
EMPTY_PRE_POST_CLEANUP=" yes" 系统删除前后快照相同的快照对
EMPTY_PRE_POST_MIN_AGE=" 1800" 定义前后快照相同的快照对在自动删除之前必须保留的最短时限(以秒为单位)
通过脚本备份还原快照:
snapperlist.sh list # 显示所有快照
snapperlist.sh create # 创建快照,输入快照名称
snapperlist.sh restart # 重启快照、清理服务
snapperlist.sh status # 查询快照副本之间差异
snapperlist.sh delete # 删除快照,可以多个删除
snapperlist.sh undochange # 恢复最近一次快照
snapperlist.sh help # 帮助信息
【Centos7 Snapper快照备份】sanpperlist.sh
#!/bin/bash
case " $1" in
list)
snapper -c config_name list
; ;
create)
read -p " 输入快照名称:" name
snapper -c config_name create -d $name
; ;
restart)
systemctl stop snapper-timeline.timer
systemctl start snapper-timeline.timer
systemctl start snapper-cleanup.timer
systemctl enable snapper-cleanup.timer
echo " 重启快照、清理服务..."
; ;
status)
snapper -c config_name list|awk -F‘|‘ ‘{print $2,$7}‘
read -p " 输入查询快照编号: (格式1..2)" num
snapper -c config_name status $num
; ;
delete)
snapper -c config_name list|awk -F‘|‘ ‘{print $2,$7}‘
read -p " 输入删除快照编号:(格式1 2 3)" num
snapper -c config_name delete $num
; ;
undochange)
snapper -c config_name create -d " tmp"
num1=snapper -c config_name list|tail -2|awk ‘{print $3}‘|head -1
num2=snapper -c config_name list|tail -1|awk ‘{print $3}‘
str1=snapper -c config_name list|tail -2|awk ‘{print $17‘}|head -1
str2=snapper -c config_name list|tail -1|awk ‘{print $17}‘
echo " [$num1 $str1] [$num2 $str2]"
if [ $str2 == tmp ];
then
read -n1 -p " 是否恢复$str1快照[Y/N]?" answer
case $answer in
Y | y)
snapper -c config_name undochange " $num1" .." $num2"
snapper -c config_name delete " $num2"
; ;
N | n)
echo " 取消"
snapper -c config_name delete " $num2"
exit 0
; ;
)
echo " 输入错误!"
; ;
esac
exit 0
fi
; ;
help)
snapper --help
; ;
)
echo " {list|restart|status|delete|undochange|help}"
esac

    推荐阅读