Регулярные бэкапы — то, о чем вспоминают, когда уже поздно.
Вот базовый пример скрипта, который архивирует директорию в tar.gz с таймстэмпом в имени и складывает в заданное место:
import shutil
import time
def backup_directory(source, destination):
timestamp = time.strftime("%Y%m%d%H%M%S")
backup_file = f"{destination}/backup_{timestamp}.tar.gz"
# shutil.make_archive ожидает путь без расширения
shutil.make_archive(backup_file.replace(".tar.gz", ""), "gztar", source)
print(f"Backup completed: {backup_file}")
backup_directory("/path/to/important/data", "/path/to/backup/location")
Что делает скрипт:
• Берёт путь к исходной директории source и каталогу для бэкапов destination.
• Генерирует имя файла по текущему времени, чтобы каждый бэкап был уникальным.
• Создаёт архив в формате tar.gz с помощью shutil.make_archive.
• Печатает путь к созданному бэкапу.
Как использовать в продакшене:
• Положить скрипт в репозиторий инфраструктуры или ansible/helm-роль.
• Прописать запуск через cron, systemd timer или CI-пайплайн.
• Добавить логирование в файл и алерт при ошибке
Минимальная доработка под боевое окружение:
• Проверка существования директорий.
• Конфиг через переменные окружения или .env.
• Отправка бэкапа в S3 / объектное хранилище / удалённый сервер.
Такой небольшой скрипт закрывает базовую задачу резервного копирования важных директорий без лишних зависимостей.
🔹 Программирование на языке Python
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека devops'a
#арсенал_инженера