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"
|
||||
echo "Результат работы записываю в файл $LOGFILE"
|
||||
|
||||
# Записать в файл список резервируемых датасетов
|
||||
echo "--- $(date +'%Y.%m.%d %H:%M.%S') ---" >> "${LOGFILE}"
|
||||
echo "Список резервируемых датасетов:" >> "${LOGFILE}"
|
||||
# Функция для записи сообщения в файл и на экран
|
||||
echo_log () { # $1 = Сообщение
|
||||
echo $1
|
||||
echo $1 >> "$LOGFILE"
|
||||
}
|
||||
|
||||
# Записать лог список резервируемых датасетов
|
||||
echo "--- $(date +'%Y.%m.%d %H:%M.%S') ---" >> "$LOGFILE"
|
||||
echo "Список резервируемых датасетов:" >> "$LOGFILE"
|
||||
n_tasks=0
|
||||
for loc_ds in ${(k)work_datasets}; do
|
||||
(( 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
|
||||
|
||||
echo
|
||||
exec 6>&1 # Saves stdout
|
||||
exec >&1 >>$LOGFILE 2>&1 # Вывод на экран и в файл
|
||||
|
||||
echo "--- Резервирую данные ---"
|
||||
echo_log
|
||||
echo_log "--- Резервирую данные ---"
|
||||
i_task=0 # Выполненных зачач
|
||||
echo $i_task > /dev/shm/backup_i_task # Сохраняем количество готовых задач в память
|
||||
for loc_ds bak_ds in ${(kv)work_datasets}; do
|
||||
TS1=$(date +%s)
|
||||
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 выдаёт ошибку если мы оставили существующий снимок
|
||||
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
|
||||
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} ;;
|
||||
@ -231,11 +234,9 @@ if [[ $work = "y" || $work = "Y" ]]; then
|
||||
TS2=$(date +%s)
|
||||
(( 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 & # Запустить резервирование в фоне
|
||||
|
||||
exec 1>&6 # Restore stdout. Не писать в файл лога отследивание процента
|
||||
|
||||
# Выводить прогресс запрашивая список запущенныйх процессов
|
||||
echo ""
|
||||
last_percent=0
|
||||
@ -269,15 +270,11 @@ if [[ $work = "y" || $work = "Y" ]]; then
|
||||
fi
|
||||
i_task=$(< /dev/shm/backup_i_task)
|
||||
done
|
||||
|
||||
# Удалить временные файлы состояний
|
||||
rm /dev/shm/backup_i_task
|
||||
rm /dev/shm/backup_time_stamp
|
||||
|
||||
exec >&1 >>$LOGFILE 2>&1 # Вывод на экран и в файл
|
||||
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}" # Заменить все возвраты каретки на символы переноса лог файле
|
||||
echo_log "\n--- Все завершено за $(date -d@$(( $(date +%s) - $TS0 )) -u '+%H:%M.%S') ---\n"
|
||||
|
||||
fi
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user