15 خطوط
656 B
Bash
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"
|