bugfix: вывод в лог файл (не тестировано)
This commit is contained in:
parent
130fd5a9f4
commit
3120cfc2d0
@ -202,28 +202,31 @@ if [[ $work = "y" || $work = "Y" ]]; then
|
|||||||
LOGFILE="log_bak_${inc_snapshot}.log"
|
LOGFILE="log_bak_${inc_snapshot}.log"
|
||||||
echo "Результат работы записываю в файл $LOGFILE"
|
echo "Результат работы записываю в файл $LOGFILE"
|
||||||
|
|
||||||
# Записать в файл список резервируемых датасетов
|
# Функция для записи сообщения в файл и на экран
|
||||||
echo "--- $(date +'%Y.%m.%d %H:%M.%S') ---" >> "${LOGFILE}"
|
echo_log () { # $1 = Сообщение
|
||||||
echo "Список резервируемых датасетов:" >> "${LOGFILE}"
|
echo $1
|
||||||
|
echo $1 >> "$LOGFILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Записать лог список резервируемых датасетов
|
||||||
|
echo "--- $(date +'%Y.%m.%d %H:%M.%S') ---" >> "$LOGFILE"
|
||||||
|
echo "Список резервируемых датасетов:" >> "$LOGFILE"
|
||||||
n_tasks=0
|
n_tasks=0
|
||||||
for loc_ds in ${(k)work_datasets}; do
|
for loc_ds in ${(k)work_datasets}; do
|
||||||
(( n_tasks++ ))
|
(( n_tasks++ ))
|
||||||
echo "$key \t ${last_loc_snaps[$loc_ds]} \t -> \t${work_datasets[$loc_ds]}" >> "${LOGFILE}"
|
echo "$key \t ${last_loc_snaps[$loc_ds]} \t -> \t${work_datasets[$loc_ds]}" >> "$LOGFILE"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo
|
echo_log
|
||||||
exec 6>&1 # Saves stdout
|
echo_log "--- Резервирую данные ---"
|
||||||
exec >&1 >>$LOGFILE 2>&1 # Вывод на экран и в файл
|
|
||||||
|
|
||||||
echo "--- Резервирую данные ---"
|
|
||||||
i_task=0 # Выполненных зачач
|
i_task=0 # Выполненных зачач
|
||||||
echo $i_task > /dev/shm/backup_i_task # Сохраняем количество готовых задач в память
|
echo $i_task > /dev/shm/backup_i_task # Сохраняем количество готовых задач в память
|
||||||
for loc_ds bak_ds in ${(kv)work_datasets}; do
|
for loc_ds bak_ds in ${(kv)work_datasets}; do
|
||||||
TS1=$(date +%s)
|
TS1=$(date +%s)
|
||||||
echo $TS1 > /dev/shm/backup_time_stamp # Сохраняем отметку о времени начала
|
echo $TS1 > /dev/shm/backup_time_stamp # Сохраняем отметку о времени начала
|
||||||
echo " * snapshot ${loc_ds}@${inc_snapshot}"
|
echo_log " * snapshot ${loc_ds}@${inc_snapshot}"
|
||||||
zfs snapshot ${loc_ds}@${inc_snapshot}; #FIXME выдаёт ошибку если мы оставили существующий снимок
|
zfs snapshot ${loc_ds}@${inc_snapshot}; #FIXME выдаёт ошибку если мы оставили существующий снимок
|
||||||
echo " * Start sending ${loc_ds} at $(date +'%Y.%m.%d %H:%M.%S')"
|
echo_log " * Start sending ${loc_ds} at $(date +'%Y.%m.%d %H:%M.%S')"
|
||||||
case $incremental in
|
case $incremental in
|
||||||
true) zfs send -V -i ${loc_ds}@${last_loc_snaps[$loc_ds]} ${loc_ds}@${inc_snapshot} | ssh "$backup_user@${backup_server}" zfs receive ${bak_ds}@${inc_snapshot} ;;
|
true) zfs send -V -i ${loc_ds}@${last_loc_snaps[$loc_ds]} ${loc_ds}@${inc_snapshot} | ssh "$backup_user@${backup_server}" zfs receive ${bak_ds}@${inc_snapshot} ;;
|
||||||
false) zfs send -V ${loc_ds}@${inc_snapshot} | ssh "$backup_user@${backup_server}" zfs receive ${bak_ds} ;;
|
false) zfs send -V ${loc_ds}@${inc_snapshot} | ssh "$backup_user@${backup_server}" zfs receive ${bak_ds} ;;
|
||||||
@ -231,11 +234,9 @@ if [[ $work = "y" || $work = "Y" ]]; then
|
|||||||
TS2=$(date +%s)
|
TS2=$(date +%s)
|
||||||
(( i_task++ ))
|
(( i_task++ ))
|
||||||
echo $i_task > /dev/shm/backup_i_task
|
echo $i_task > /dev/shm/backup_i_task
|
||||||
echo "------ готово за: $(date -d@$(($TS2-$TS1)) -u '+%H:%M.%S') ------"
|
echo_log "--- готово за: $(date -d@$(($TS2-$TS1)) -u '+%H:%M.%S') ---"
|
||||||
done & # Запустить резервирование в фоне
|
done & # Запустить резервирование в фоне
|
||||||
|
|
||||||
exec 1>&6 # Restore stdout. Не писать в файл лога отследивание процента
|
|
||||||
|
|
||||||
# Выводить прогресс запрашивая список запущенныйх процессов
|
# Выводить прогресс запрашивая список запущенныйх процессов
|
||||||
echo ""
|
echo ""
|
||||||
last_percent=0
|
last_percent=0
|
||||||
@ -269,15 +270,11 @@ if [[ $work = "y" || $work = "Y" ]]; then
|
|||||||
fi
|
fi
|
||||||
i_task=$(< /dev/shm/backup_i_task)
|
i_task=$(< /dev/shm/backup_i_task)
|
||||||
done
|
done
|
||||||
|
|
||||||
# Удалить временные файлы состояний
|
# Удалить временные файлы состояний
|
||||||
rm /dev/shm/backup_i_task
|
rm /dev/shm/backup_i_task
|
||||||
rm /dev/shm/backup_time_stamp
|
rm /dev/shm/backup_time_stamp
|
||||||
|
|
||||||
exec >&1 >>$LOGFILE 2>&1 # Вывод на экран и в файл
|
echo_log "\n--- Все завершено за $(date -d@$(( $(date +%s) - $TS0 )) -u '+%H:%M.%S') ---\n"
|
||||||
echo "\n--- Все завершено за $(date -d@$(( $(date +%s) - $TS0 )) -u '+%H:%M.%S') ---"
|
|
||||||
|
|
||||||
exec 1>&6 6>&- # Restore stdout and close file descriptor #6.
|
|
||||||
|
|
||||||
# sed "s/\r/\n/g" "${LOGFILE}" > "${LOGFILE}" # Заменить все возвраты каретки на символы переноса лог файле
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user