#!/bin/bash
# Устанавливаем путь до директории, которую нужно скопировать
source_dir="/path/to/source_directory"
# Устанавливаем путь до директории, где будет создан архив
backup_dir="/path/to/backup_directory"
# Создаем имя для архива, используя текущую дату и время
backup_file="backup_$(date +'%Y%m%d_%H%M%S').tar.gz"
# Создаем архив с помощью команды tar
tar -czf "$backup_dir/$backup_file" "$source_dir"
# Если архив был успешно создан, выводим сообщение об этом
if [ $? -eq 0 ]; then
echo "Резервная копия создана успешно: $backup_dir/$backup_file"
else
echo "Ошибка при создании резервной копии"
fi
Подробное описание каждой части скрипта
#!/bin/bash
Шебанг — указывает системе, что скрипт нужно запускать с интерпретатором Bash.
Указание путей к каталогам
# Укажите путь к каталогу для бэкапаSOURCE_DIR="/path/to/backup"
# Путь для сохранения архива
DEST_DIR="/path/to/destination" - SOURCE_DIR — путь к каталогу, который нужно архивировать. В реальной эксплуатации это должно быть правильное и существующее имя каталога.
- DEST_DIR — папка, в которую будет сохранен архив. Также должна существовать заранее. Важно: Перед запуском убедитесь, что пути указаны корректно. Если папки не существуют, скрипт выдаст ошибку. Создание имени файла с датой # Создаём имя файла с датой DATE=$(date +"%Y%m%d") BACKUP_NAME="backup_$DATE.tar.gz" - date +"%Y%m%d" — команда, возвращающая текущую дату в формате ГГГГММДД (например, 20241001). Это обеспечивает уникальность имени файла и отслеживание по дате. - BACKUP_NAME — формируется имя файла архива, например, backup_20241001.tar.gz. Можно изменить формат или добавить время, например, чтобы избежать конфликтов при запуске несколько раз за день. Создание архива tar -czvf "$DEST_DIR/$BACKUP_NAME" "$SOURCE_DIR" - tar — команда для архивации. - -c — создать новый архив. - -z — сжать его с помощью gzip. - -v — выводит на экран список файлов, входящих в архив (можно убрать для тихой работы). - -f — указывает имя файла архива. - "$DEST_DIR/$BACKUP_NAME" — путь к архиву, в который сохраняется архив. - "$SOURCE_DIR" — каталог, который архивируется. Отличная практика: Можно добавить опцию --delete или использовать флаг -j для .bz2, а также добавлять исключения или выполнять архивацию с проверками. Вывод сообщения о завершении
Резервная копия создана: $DEST_DIR/$BACKUP_NAME
Уведомление пользователя о том, что резервная копия успешно создана и указывает путь к файлу.
Итог
Этот скрипт — простая, но эффективная автоматизация создания резервных копий.