fix: Форматирование вывода при инкрементном копировании
* убран вывод ошибки отсутвующих датасетов
This commit is contained in:
parent
1738c35abb
commit
909b5bbb49
12
zfs_send.zsh
12
zfs_send.zsh
@ -282,12 +282,13 @@ fi # Конец блока наличия переданных параметр
|
||||
# Словарь со списком последких снапшотов для датасетов
|
||||
declare -A last_loc_snaps
|
||||
echo -ne "Проверяю на наличие $inc_snapshot...\033[2K\r"
|
||||
column_widths="%-45s * %-45s\n"
|
||||
for loc_ds bak_ds in ${(kv)work_datasets}; do
|
||||
# Запросить последние снимки
|
||||
loc_snap="$(zfs list -t snapshot -o name ${loc_ds} | grep 'manual' | tail -n1 | egrep -o '@.+' )"
|
||||
loc_snap="$(zfs list -t snapshot -o name ${loc_ds} 2>/dev/null | grep 'manual' | tail -n1 | egrep -o '@.+' )"
|
||||
loc_snap=${loc_snap:1} # удалить @ в начале строки
|
||||
if [[ $incremental = true ]]; then
|
||||
bak_snap=$(ssh $backup_user@$backup_server zfs list -t snapshot -o name ${bak_ds} | grep 'manual' | tail -n1 | egrep -o '@.+')
|
||||
bak_snap=$(ssh $backup_user@$backup_server zfs list -t snapshot -o name ${bak_ds} 2>/dev/null | grep 'manual' | tail -n1 | egrep -o '@.+')
|
||||
bak_snap=${bak_snap:1} # удалить @ в начале строки
|
||||
fi
|
||||
# echo "$loc_ds @ $loc_snap -> $bak_ds @ $bak_snap"
|
||||
@ -295,12 +296,12 @@ for loc_ds bak_ds in ${(kv)work_datasets}; do
|
||||
if [[ "$loc_snap" = "$inc_snapshot" ]]; then
|
||||
if [[ $incremental = true ]] && [[ "$loc_snap" = "$bak_snap" ]]; then
|
||||
# Если последние снимки на обеих машинах совпадают в инкрементном режиме
|
||||
echo "${loc_ds}@${loc_snap} * существует на обеих машинах. Исключено из списка резервируемых"
|
||||
printf $column_widths "${loc_ds}@${loc_snap}" "существует на обеих машинах. Исключено из списка резервируемых"
|
||||
unset "work_datasets[$loc_ds]"
|
||||
else
|
||||
# Если на удалённой машине нет такого снимка, то предложить удалить.
|
||||
echo "Датасет $loc_ds уже имеет последний снимок $inc_snapshot"
|
||||
read "act?ok: резервировать | re: пересоздать (удаляет сразу!) | исключить из работы по умолчанию : "
|
||||
printf $column_widths "${loc_ds}@${loc_snap}" "существует на исходной машине, но отсутвует на $backup_server"
|
||||
read "act?ok: резервировать | re: пересоздать (удаляет сразу!!!) | по умолчанию исключить из работы : "
|
||||
case $act in
|
||||
re) zfs destroy "${loc_ds}@${loc_snap}";
|
||||
loc_snap="$(zfs list -t snapshot -o name ${loc_ds} | grep 'manual' | tail -n1 | egrep -o '@.+' )";
|
||||
@ -317,6 +318,7 @@ for loc_ds bak_ds in ${(kv)work_datasets}; do
|
||||
last_loc_snaps[$loc_ds]=$loc_snap
|
||||
else
|
||||
if [[ $incremental = true ]]; then
|
||||
printf $column_widths "${loc_ds}" "Не имеет снимков. Не возможно сделать инкрементный резерв."
|
||||
unset "work_datasets[$loc_ds]"
|
||||
fi
|
||||
fi
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user