No description
- Shell 100%
| .env.example | ||
| .gitignore | ||
| Readme.md | ||
| restore.bash | ||
| script.bash | ||
Directory Backup Tool
Скрипт для автоматического создания зашифрованных резервных копий локальной директории.
Основные возможности
- Архивация: Создает сжатый архив указанной директории
$TARGET_DIR. - Безопасность: Все архивы шифруются алгоритмом AES256 с помощью GPG.
- Облачное хранение: Автоматическая синхронизация зашифрованных архивов с удаленным FTP-сервером через
lftp. - Статистика: Ведение лога каждой операции в файл
backup.log.
Требования
Для работы скрипта должны быть установлены:
lftp(синхронизация с FTP)gpg(шифрование)tar(архивация)
Настройка
-
Скопируйте
.env.example -> .envв корне проекта и установите значение переменных:PROJECT_NAME: Название проекта (используется в имени архива).TARGET_DIR: Путь к директории, которую нужно забэкапить.BACKUP_DIR: Временная локальная папка для хранения зашифрованного архива.REMOTE_BACKUP_DIR: Папка на FTP-сервере.BACKUP_PASSWORD: Пароль для шифрования архива.
-
Настройте права доступа к скрипту:
chmod +x script.bash
Использование
Запуск бэкапа по умолчанию (используя .env):
./script.bash
Запуск с переопределением параметров (аргументы имеют приоритет):
./script.bash -p my-custom-project -t /path/to/other/dir -r /remote/path
Доступные флаги:
-p: Имя проекта (влияет на имя архива)-t: Путь к директории для бэкапа-r: Путь на FTP сервере
Восстановление данных
Использование скрипта восстановления
Для удобного восстановления используйте restore.bash:
chmod +x restore.bash
./restore.bash путь/к/архиву.tar.gz.gpg
Скрипт автоматически использует BACKUP_PASSWORD из вашего .env.
Ручная расшифровка архива
Для расшифровки и распаковки архива вручную используйте команду:
gpg --batch --passphrase "ваш_пароль" -d имя_файла.tar.gz.gpg | tar -xzp --same-owner
Примечание: для восстановления владельцев файлов (--same-owner) могут потребоваться права root.
Логирование
Результаты работы записываются в ./backup.log