Не всегда нужно хранить десятки одинаковых дампов. Для многих задач хватает схемы: 7 файлов по дням недели, где каждый новый дамп перезаписывает соответствующий день.
Идея простая:
в понедельник - backup-mon.sql
во вторник - backup-tue.sql
через неделю цикл повторяется
🛠 Пример для PostgreSQL
#!/usr/bin/env bash
BACKUP_DIR="/var/backups/db"
DB_NAME="mydb"
DB_USER="postgres"
day=$(date +%a | tr '[:upper:]' '[:lower:]') # mon, tue, wed...
file="$BACKUP_DIR/backup-$day.sql"
mkdir -p "$BACKUP_DIR"
pg_dump -U "$DB_USER" "$DB_NAME" > "$file"
echo "Backup saved to $file"
🛠 Пример для MySQL
#!/usr/bin/env bash
BACKUP_DIR="/var/backups/db"
DB_NAME="mydb"
DB_USER="root"
day=$(date +%a | tr '[:upper:]' '[:lower:]')
file="$BACKUP_DIR/backup-$day.sql"
mkdir -p "$BACKUP_DIR"
mysqldump -u "$DB_USER" "$DB_NAME" > "$file"
echo "Backup saved to $file"
▪️ Сжатие для экономии места
mysqldump -u "$DB_USER" "$DB_NAME" | gzip > "$BACKUP_DIR/backup-$day.sql.gz"
▪️ Cron-запуск
0 2 * * * /usr/local/bin/db-backup.sh
Каждую ночь в 02:00 дамп будет обновлять файл нужного дня.
BashTex 📱 #backup