14.2. 创建 Snapper 快照
snapper 可以创建以下类型的快照:
- pre Snapshot
- pre 快照充当后快照的原始卷。这两个操作都紧密关联,旨在跟踪两个点之间的文件系统修改。必须在创建快照前创建预快照。
- 后快照
- post 快照充当预快照的端点。组合 pre 和 post 快照定义了要比较的范围。默认情况下,每个新 snapper 卷都配置为在成功创建相关后创建快照后创建后台比较。
- 单个快照
- 单个快照是在特定时间创建的独立快照。它们可用于跟踪修改时间表,并具有以后返回的一般点。
14.2.1. 创建 Pre 和 Post Snapshot Pair
14.2.1.1. 使用 Snapper 创建 Pre Snapshot
要创建预快照,请使用:
#
snapper -c config_name create -t pre
-c config_name 选项根据指定配置文件中的规格创建快照。如果配置文件尚不存在,请参阅 第 14.1 节 “创建 Initial Snapper 配置”。
create -t 选项指定要创建的快照类型。接受的条目为
pre
、post
或 single
。
例如,要使用
lvm_config
配置文件创建预快照,如 第 14.1 节 “创建 Initial Snapper 配置” 中创建,请使用:
#
snapper -c SnapperExample create -t pre -p
1
-p
选项打印创建快照的数量,并是可选的。
14.2.1.2. 使用 Snapper 创建 Post Snapshot
post 快照是快照的端点,应该按照 第 14.2.1.1 节 “使用 Snapper 创建 Pre Snapshot” 中的说明在父预快照后创建。
过程 14.2. 创建后快照
- 确定预快照的数量:
#
snapper -c config_name list例如,要显示使用配置文件lvm_config
创建的快照列表,请使用:#
snapper -c lvm_config list Type | # | Pre # | Date | User | Cleanup | Description | Userdata -------+---+-------+-------------------+------+----------+-------------+--------- single | 0 | | | root | | current | pre | 1 | | Mon 06<...> | root | | |此输出显示预快照为数字 1。 - 创建链接到之前创建的预快照的后快照:
#
snapper -c config_file create -t post --pre-num pre_snapshot_number- t post 选项指定创建快照类型的创建。
- --pre-num 选项指定对应的 pre snapshot。
例如,要使用lvm_config
配置文件创建后快照并链接到预快照号 1,请使用:#
snapper -c lvm_config create -t post --pre-num 1 -p 2-p
选项打印创建快照的数量,并是可选的。 - 现在创建并配对了 pre 和 post 快照 1 和 2。使用 list 命令验证:
#
snapper -c lvm_config list Type | # | Pre # | Date | User | Cleanup | Description | Userdata -------+---+-------+-------------------+------+----------+-------------+--------- single | 0 | | | root | | current | pre | 1 | | Mon 06<...> | root | | | post | 2 | 1 | Mon 06<...> | root | | |
14.2.1.3. 在 Pre 和 Post Snapshots 中嵌套命令
您还可以在预快照和后快照中嵌套命令,这在测试时很有用。请参阅 过程 14.3, “在 Pre 和 Post Snapshots 中嵌套命令”,它是以下步骤的快捷方式:
- 运行 snapper create pre snapshot 命令。
- 运行命令或命令列表,以对文件系统内容有可能的影响。
- 运行 snapper create post snapshot 命令。
过程 14.3. 在 Pre 和 Post Snapshots 中嵌套命令
- 在预快照和后快照中嵌套命令:
#
snapper -c lvm_config create --command "command_to_be_tracked"例如,要跟踪/lvm_mount/hello_file
文件的创建:#
snapper -c lvm_config create --command "echo Hello > /lvm_mount/hello_file" - 要验证这一点,请使用 status 命令:
#
snapper -c config_file status first_snapshot_number..second_snapshot_number例如,要跟踪第一步中所做的更改:#
snapper -c lvm_config status 3..4 +..... /lvm_mount/hello_file如果需要,使用 list 命令验证快照的数量。有关 status 命令的详情请参考 第 14.3 节 “跟踪 Snapper Snapshots 间的更改”。
请注意,给定示例中 命令不能保证快照捕获的唯一内容。snapper 还记录系统修改的任何内容,而不仅仅是用户修改的内容。
14.2.2. 创建单个 Snapper 快照
创建单个 snapper 快照与创建预快照或后快照类似,只有 create
-t
选项指定单个。单个快照用于随着时间的推移创建单个快照,而不与任何其他快照相关。但是,如果您想创建 LVM2 精简卷的快照,而无需自动生成比较或列出附加信息,红帽建议为此使用 System Storage Manager 而不是 Snapper,如 第 16.2.6 节 “Snapshot” 所述。
要创建单个快照,请使用:
#
snapper -c config_name create -t single
例如,以下命令使用
lvm_config
配置文件创建单个快照。
#
snapper -c lvm_config create -t single
虽然单个快照没有专门设计来跟踪更改,但您可以使用 snapper diff、xadiff 和 status 命令比较任何两个快照。有关这些命令的详情请参考 第 14.3 节 “跟踪 Snapper Snapshots 间的更改”。
14.2.3. 配置 Snapper 以获取自动化快照
进行自动快照是 Snapper 的主要功能之一。默认情况下,当您为卷配置 Snapper 时,Snapper 会每小时开始对卷执行快照。
在默认配置下,Snapper 保留:
- 10 每小时快照,最终每小时快照保存为"每天"快照。
- 10 个每日快照,一个月的最终每日快照会保存为"月"快照。
- 10 个月快照,最终每月快照保存为"每年"快照。
- 10 年快照。
请注意,Snapper 默认不会超过 50 个快照。但是,Snapper 默认保留在 1,800 秒以前创建的所有快照。
默认配置在
/etc/snapper/config-templates/default
文件中指定。当您使用 snapper create-config 命令创建配置时,会根据默认配置设置任何未指定的值。您可以编辑 /etc/snapper/configs/config_name
文件中任何定义的卷的配置。