51 lines
1.4 KiB
Bash
Executable File
51 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
# CONFIGURATION
|
|
ORIG_MINIO_PATH="/assets"
|
|
NEW_ZFS_PATH="/zfs/disk1"
|
|
MINIO_BUCKETS=(
|
|
"assets_azuracast"
|
|
"assets_archives"
|
|
"assets_genesisassets"
|
|
"assets_genesislibrary"
|
|
"assets_mastodon"
|
|
"assets_teamtalkdata"
|
|
)
|
|
MINIO_USER="minio-user"
|
|
MINIO_SERVICE="minio"
|
|
|
|
echo "=== Step 1: Preparing new ZFS path ==="
|
|
mkdir -p "$NEW_ZFS_PATH"
|
|
|
|
for BUCKET in "${MINIO_BUCKETS[@]}"; do
|
|
CLEAN_NAME="${BUCKET/assets_/}" # Remove 'assets_' prefix
|
|
SRC="$ORIG_MINIO_PATH/$BUCKET/"
|
|
DEST="$NEW_ZFS_PATH/$CLEAN_NAME/"
|
|
|
|
echo "=== Step 2: Rsyncing $BUCKET → $CLEAN_NAME ==="
|
|
rsync -a --info=progress2 "$SRC" "$DEST"
|
|
|
|
echo "=== Step 3: Fixing ownership for: $CLEAN_NAME ==="
|
|
chown -R "$MINIO_USER:$MINIO_USER" "$DEST"
|
|
done
|
|
|
|
echo "=== Step 4: Update MinIO service (manual step) ==="
|
|
echo "Set ExecStart in minio.service to:"
|
|
echo " /usr/local/bin/minio server $NEW_ZFS_PATH --console-address \":9001\""
|
|
|
|
echo "=== Step 5: Reload and restart MinIO ==="
|
|
echo "Run:"
|
|
echo " systemctl daemon-reload"
|
|
echo " systemctl restart $MINIO_SERVICE"
|
|
|
|
echo "=== Step 6: Validate with mc ==="
|
|
echo "Run:"
|
|
echo " mc alias set local http://localhost:9000 genesisadmin MutationXv3!"
|
|
echo " mc ls local/"
|
|
|
|
echo ""
|
|
echo "✅ All buckets (including teamtalkdata) are now synced to the ZFS backend."
|
|
echo "To roll back, revert minio.service ExecStart and restart MinIO."
|