Примитивный способ создания бекапа без использования rsync (#4)
Some checks failed
Deploy to Server (Docker) / deploy (push) Failing after 6s
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:
parent
627cd7d499
commit
e72bbca713
40
bash/task2/backup.sh
Executable file
40
bash/task2/backup.sh
Executable 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
|
Loading…
Reference in New Issue
Block a user