L o a d i n g
Безопасные бэкапы для Docker и PostgreSQL: Как защитить данные без переплат Сервер

Даже небольшой сбой может стереть месяцы работы. Готовые решения стоят дорого, а их настройка занимает часы. Мы создадим бесплатную систему бэкапов с:

  • Шифрованием конфиденциальных данных
  • Автоматизацией через cron
  • Поддержкой Docker и PostgreSQL
  • Защитой от утечек паролей

Шаг 1: Подготовка сервера

1.1. Проверьте место на диске

df -h

1.2. Создайте папки для бэкапов

mkdir -p /backups/{temp,archives}
chmod 755 /backups

Шаг 2: Безопасное хранение паролей

2.1. Создайте файл .env

nano ~/.backup_credentials.env

Добавьте данные:

# База данных
DB_NAME="ваша_база"
DB_USER="ваш_пользователь"
DB_PASS="ваш_пароль"

# Docker-контейнеры
WEB_CONTAINER="имя_вашего_web_контейнера"
DB_CONTAINER="имя_вашего_db_контейнера"

# Путь к статике
STATIC_VOLUME="/путь/к/docker/volume/статики"

2.2. Защитите файл правами доступа

chmod 600 ~/.backup_credentials.env

Шаг 3: Создание скрипта бэкапа

3.1. Создайте скрипт

nano /root/backup_script.sh

3.2. Код скрипта с защитой данных:

#!/bin/bash
source ~/.backup_credentials.env
# ... (остальной код скрипта из предыдущей версии)

Шаг 4: Автоматизация через cron

crontab -e

Добавьте строку:

0 2 * * * /root/backup_script.sh >> /var/log/backup.log 2>&1

Шаг 5: Восстановление данных

# Расшифровка архива
openssl enc -d -aes-256-cbc -in backup.tar.gz -out backup_decrypted.tar.gz -pass pass:"ваш_пароль"

# Восстановление базы
pg_restore -h localhost -U пользователь -d база /путь/к/бэкапу

Дополнительные меры безопасности

Использование .pgpass

echo "localhost:5432:база:пользователь:пароль" > ~/.pgpass
chmod 600 ~/.pgpass

FAQ

Q: Как добавить уведомления в Telegram?
A: Используйте curl в скрипте:

curl -s -X POST "https://api.telegram.org/..."

Q: Как хранить бэкапы в облаке?
A: Добавьте в скрипт:

aws s3 cp backup.tar.gz s3://ваше_ведро

Написать комментарий

Вы можете оставить комментарий автору статьи Обязательные поля помечены *