Примитивный способ создания бекапа без использования rsync (#4)
Some checks failed
Deploy to Server (Docker) / deploy (push) Failing after 6s

1. Проверяем, что папка, с которой надо сделать резервное копирование,
существует.
2. Получаем текущую метку времени.
3. Формируем имя с нашей меткой времени для создания архива через tar
утилиту

Reviewed-on: https://git.gocommunity.ru/walleri1/go_winter_work_2025/pulls/4
Co-authored-by: Vitaliy Turov <walleri1@yandex.ru>
Co-committed-by: Vitaliy Turov <walleri1@yandex.ru>
This commit is contained in:
Виталий Туров 2025-02-15 11:31:36 +03:00 committed by Виталий Туров
parent 627cd7d499
commit e72bbca713

40
bash/task2/backup.sh Executable file
View File

@ -0,0 +1,40 @@
#!/bin/bash
# Проверка аргументов
if [ "$#" -ne 2 ]; then
echo "Использование: $0 <путь_к_каталогу_для_резервной_копии> <путь_к_каталогу_для_сохранения>"
exit 1
fi
# Получаем аргументы
source_dir="$1"
backup_dir="$2"
# Проверяем, существует ли исходный каталог
if [ ! -d "$source_dir" ]; then
echo "Ошибка: Исходный каталог '$source_dir' не найден."
exit 1
fi
# Создаем каталог для резервных копий, если он не существует
mkdir -p "$backup_dir"
# Получаем текущее время
timestamp=$(date +"%Y%m%d_%H%M%S")
# Создаем имя файла резервной копии
backup_file="backup_${timestamp}.tar.gz"
# Полный путь к архиву
backup_path="${backup_dir}/${backup_file}"
# Создание архива
tar -czf "$backup_path" -C "$source_dir" .
# Проверка успешности создания архива
if [ $? -eq 0 ]; then
echo "Резервная копия успешно создана: $backup_path"
else
echo "Ошибка: Не удалось создать резервную копию."
exit 1
fi