feat(script): Implement retention for old snapshots (#1)
This commit is contained in:
parent
f5956063a9
commit
05a9f22b01
@ -212,6 +212,22 @@ function get_snaps_in_cur_sev () {
|
||||
printf -- '%s' "${snaps_in_cur_sev}"
|
||||
}
|
||||
|
||||
function do_retention () {
|
||||
local snap_list snaps_done_by_us snaps_in_cur_sev snaps_limit oldest_snap
|
||||
for successfully_snapped_dataset in "${successfully_snapped_datasets[@]}"; do
|
||||
snaps_in_cur_sev="$(get_snaps_in_cur_sev "${successfully_snapped_dataset}")"
|
||||
if [[ "${severity}" == "${snaps_important_suffix}" ]]; then
|
||||
snaps_limit="${snaps_important_keep}"
|
||||
else
|
||||
snaps_limit="${snaps_trivial_keep}"
|
||||
fi
|
||||
while [[ "$(get_snaps_in_cur_sev "${successfully_snapped_dataset}" | wc -l)" -gt "${snaps_limit}" ]]; do
|
||||
oldest_snap="$(get_snaps_in_cur_sev "${successfully_snapped_dataset}" | head -n1)"
|
||||
zfs destroy "${oldest_snap}"
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
function main () {
|
||||
local pkgs_in_transaction
|
||||
pkgs_in_transaction=("${@}")
|
||||
@ -245,7 +261,9 @@ function main () {
|
||||
local trimmed_pkg_list_oneline
|
||||
trim_pkg_list_oneline
|
||||
|
||||
local -a successfully_snapped_datasets
|
||||
do_snaps
|
||||
do_retention
|
||||
}
|
||||
|
||||
main "${pkgs[@]}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user