博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos7 Snapper快照备份
阅读量:7083 次
发布时间:2019-06-28

本文共 3121 字,大约阅读时间需要 10 分钟。

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 # 帮助信息

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

转载于:https://blog.51cto.com/zhizhimao/2361466

你可能感兴趣的文章
logback 和 log4j对比,及相关配置
查看>>
iOS 音乐播放器之锁屏效果+歌词解析
查看>>
java中int->String 3种方式效率分析
查看>>
从 Python 快速启动 CGI 服务器
查看>>
php 二维数组转一维数组
查看>>
「POJ3734」Blocks
查看>>
Beta 冲刺 (4/7)
查看>>
CSS3
查看>>
VGG16提取图像特征 (torch7)
查看>>
Python 远程部署 Fabric
查看>>
1013A.Piles With Stones
查看>>
multipart/form-data和application/x-www-form-urlencoded的区别
查看>>
php 搜索附近人及SQL语句的写法
查看>>
拖拽(兼容版)
查看>>
Python中and和or的运算法则
查看>>
Raspberry Pi使用USB摄像头远程监控
查看>>
Ruby-selenium-webdriver(安装准备篇)
查看>>
今天愣了半天硬是没想到用map,在此还原以下代码
查看>>
【转】UITableViewCell自适应高度 UILabel自适应高度和自动换行
查看>>
网络问卷调查js实现代码
查看>>