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
|
declare -A last_loc_snaps
|
||||||
echo -ne "Проверяю на наличие $inc_snapshot...\033[2K\r"
|
echo -ne "Проверяю на наличие $inc_snapshot...\033[2K\r"
|
||||||
|
column_widths="%-45s * %-45s\n"
|
||||||
for loc_ds bak_ds in ${(kv)work_datasets}; do
|
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} # удалить @ в начале строки
|
loc_snap=${loc_snap:1} # удалить @ в начале строки
|
||||||
if [[ $incremental = true ]]; then
|
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} # удалить @ в начале строки
|
bak_snap=${bak_snap:1} # удалить @ в начале строки
|
||||||
fi
|
fi
|
||||||
# echo "$loc_ds @ $loc_snap -> $bak_ds @ $bak_snap"
|
# 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 [[ "$loc_snap" = "$inc_snapshot" ]]; then
|
||||||
if [[ $incremental = true ]] && [[ "$loc_snap" = "$bak_snap" ]]; 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]"
|
unset "work_datasets[$loc_ds]"
|
||||||
else
|
else
|
||||||
# Если на удалённой машине нет такого снимка, то предложить удалить.
|
# Если на удалённой машине нет такого снимка, то предложить удалить.
|
||||||
echo "Датасет $loc_ds уже имеет последний снимок $inc_snapshot"
|
printf $column_widths "${loc_ds}@${loc_snap}" "существует на исходной машине, но отсутвует на $backup_server"
|
||||||
read "act?ok: резервировать | re: пересоздать (удаляет сразу!) | исключить из работы по умолчанию : "
|
read "act?ok: резервировать | re: пересоздать (удаляет сразу!!!) | по умолчанию исключить из работы : "
|
||||||
case $act in
|
case $act in
|
||||||
re) zfs destroy "${loc_ds}@${loc_snap}";
|
re) zfs destroy "${loc_ds}@${loc_snap}";
|
||||||
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} | 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
|
last_loc_snaps[$loc_ds]=$loc_snap
|
||||||
else
|
else
|
||||||
if [[ $incremental = true ]]; then
|
if [[ $incremental = true ]]; then
|
||||||
|
printf $column_widths "${loc_ds}" "Не имеет снимков. Не возможно сделать инкрементный резерв."
|
||||||
unset "work_datasets[$loc_ds]"
|
unset "work_datasets[$loc_ds]"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user