Резервные копии баз данных - вещь критически важная. Но без автоматизации быстро превращаются в хаос. Сегодня про то, как настроить скрипт, который:
делает дамп базы с меткой времени
сохраняет в указанный каталог
удаляет старые бэкапы по заданной политике (например, старше 7 дней)
▪️ Пример для PostgreSQL:
#!/bin/bash
set -euo pipefail
DB_NAME="mydb"
BACKUP_DIR="/var/backups/postgres"
DAYS_TO_KEEP=7
DATE_SUFFIX=$(date +%Y-%m-%d_%H-%M-%S)
FILENAME="$BACKUP_DIR/${DB_NAME}_$DATE_SUFFIX.sql.gz"
# Создание дампа
pg_dump "$DB_NAME" | gzip > "$FILENAME"
# Удаление старых бэкапов
find "$BACKUP_DIR" -name "${DB_NAME}_*.sql.gz" -mtime +$DAYS_TO_KEEP -delete
Для MySQL/MariaDB подойдёт mysqldump "$DB_NAME"
▪️ Дополнительно, добавить исполнение скрипта в cron:
0 3 * * * /path/to/backup.sh — ежедневный бэкап в 3:00
BashTex 📱 #bash #utils