我最近创建了一个 btrfs 分区。现在我想用它snapper
来执行自动快照。该分区用作存档,作为我主要办公室电脑的备份磁盘。一般来说,分区每周只使用两到三次==>所以根本不需要太多快照。
不幸的是,snapper 正在创建大量快照。现在我有大约二十张零差异的快照。那么我该如何更改我的配置,以减少 snapper 创建的快照数量。
行动。我的配置说
时间线_清理|是的 时间线_创建|是的 TIMELINE_LIMIT_DAILY | 1 TIMELINE_LIMIT_HOURLY | 1 TIMELINE_LIMIT_MONTHLY | 4 TIMELINE_LIMIT_WEEKLY | 2 TIMELINE_LIMIT_YEARLY | 2 TIMELINE_MIN_AGE | 1800
但snapper -c buerossd-subdata-snap list
我有大约二十个快照,每小时创建一次。怎么可能呢,因为就我的配置文件而言,每小时只能保存 1 个,每天最多保存 1 个,每周最多保存 2 个。
如果你想查看我的完整输出这是一个pastebin链接。
答案1
怎么可能呢,因为就我的配置文件而言,每小时只能保存 1 个,每天最多保存 1 个,每周最多保存 2 个。
根据你的配置,snapper -c buerossd-subdata-sna cleanup timeline
应该保持每小时只有一趟。snapper ... cleanup
通常由 cron 或 systemd-timer 调用。然而,snapper ... cleanup
比通常的配置调用要少得多snapper ... create
,至少在 Debian Buster 上是这样。
看一下systemctl list-timers snapper*
。至少应该有两个计时器:
snapper-timeline.timer
forsnapper-timeline.service
,创建新快照snapper-cleanup.timer
forsnapper-cleanup.service
,根据您的配置删除快照
默认情况下,snapper-cleanup.service
每天运行一次:
# /lib/systemd/system/snapper-cleanup.timer
[Unit]
Description=Daily Cleanup of Snapper Snapshots
Documentation=man:snapper(8) man:snapper-configs(5)
[Timer]
OnBootSec=10m
OnUnitActiveSec=1d
[Install]
WantedBy=timers.target
而snapper-timeline.service
每小时运行一次:
# /lib/systemd/system/snapper-timeline.timer
[Unit]
Description=Timeline of Snapper Snapshots
Documentation=man:snapper(8) man:snapper-configs(5)
[Timer]
OnCalendar=hourly
[Install]
WantedBy=timers.target
这解释了 20 个快照。毕竟,如果您每小时创建一个快照,那么在调用清理服务之前您将拥有最多 24 个快照。
您可以snapper-timeline
减少或snapper-cleanup
增加运行频率来修复快照数量。由于您似乎担心快照的驻留数量,因此您可能想要更改前者:
systemctl edit snapper-timeline.timer
使用适当的值,例如
[Timer]
OnBootSec=15min
OnUnitActiveSec=12h
OnCalendar=
有关详细信息,请参阅man 5 systemd.timer
。