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}"
|
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 () {
|
function main () {
|
||||||
local pkgs_in_transaction
|
local pkgs_in_transaction
|
||||||
pkgs_in_transaction=("${@}")
|
pkgs_in_transaction=("${@}")
|
||||||
@ -245,7 +261,9 @@ function main () {
|
|||||||
local trimmed_pkg_list_oneline
|
local trimmed_pkg_list_oneline
|
||||||
trim_pkg_list_oneline
|
trim_pkg_list_oneline
|
||||||
|
|
||||||
|
local -a successfully_snapped_datasets
|
||||||
do_snaps
|
do_snaps
|
||||||
|
do_retention
|
||||||
}
|
}
|
||||||
|
|
||||||
main "${pkgs[@]}"
|
main "${pkgs[@]}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user