New_Micro_Learning/scripts/backup.sh

15 خطوط
656 B
Bash

#!/bin/sh
set -eu
backup_dir="${1:-/backups}"
stamp="$(date -u +%Y%m%dT%H%M%SZ)"
mkdir -p "$backup_dir/$stamp"
mysqldump --single-transaction --routines --triggers --hex-blob --set-gtid-purged=OFF \
--host="${DB_HOST:-mysql}" --port="${DB_PORT:-3306}" \
--user="$DB_USERNAME" --password="$DB_PASSWORD" "$DB_DATABASE" \
> "$backup_dir/$stamp/database.sql"
tar -czf "$backup_dir/$stamp/storage.tar.gz" -C /var/www/backend/storage app
test -s "$backup_dir/$stamp/database.sql"
(cd "$backup_dir/$stamp" && sha256sum database.sql storage.tar.gz > SHA256SUMS)
printf '%s\n' "$stamp" > "$backup_dir/latest"
echo "Backup completed: $backup_dir/$stamp"