diff --git a/bash/task2/backup.sh b/bash/task2/backup.sh new file mode 100755 index 0000000..62809ad --- /dev/null +++ b/bash/task2/backup.sh @@ -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