/ hcms-directus_backup.sh
hcms-directus_backup.sh
1 #!/bin/bash 2 3 DATE=$(date +%Y-%m-%d) 4 BACKUP_DIR="/backup/$DATE" 5 6 mkdir -p "$BACKUP_DIR" 7 echo "postgres:5432:${POSTGRES_DB}:${POSTGRES_USER}:${POSTGRES_PASSWORD}" > ~/.pgpass 8 chmod 600 ~/.pgpass 9 10 echo "Starting backup: $DATE" 11 12 echo "Postgres db..." 13 pg_dump -h postgres -w -Z6 -f "$BACKUP_DIR"/postgres.sql.gz -U "$POSTGRES_USER" "$POSTGRES_DB" 14 rm -f ~/.pgpass 15 16 echo "MinIO mirror..." 17 mc alias set minio http://minio:9000 "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD" 18 mc mirror minio/"$MINIO_BUCKET" "$BACKUP_DIR"/minio 19 20 echo "Directus uploads..." 21 [ -n "$(ls -A '/data/uploads/')" ] && tar czvf "$BACKUP_DIR"/uploads.tar.gz /data/uploads 22 23 echo "Rotating backups..." 24 ls -1dt /backup/* | tail -n +8 | xargs rm -rvf || true 25 26 echo "Backup done."