WSL/Git Bash Script to Upload all albums in a folder
#!/bin/bash
SERVER_USER="ubuntu"
SERVER_HOST="blvaine.ddns.net"
REMOTE_BASE_DIR="/music"
LOCAL_MUSIC_DIR="$1"
if [ -z "$LOCAL_MUSIC_DIR" ] || [ ! -d "$LOCAL_MUSIC_DIR" ]; then
echo "Usage: $0 <music-directory>"
exit 1
fi
for album in "$LOCAL_MUSIC_DIR"/*/; do
album_name=$(basename "$album")
echo
echo "Syncing $album_name..."
rsync -av --progress "$album" "$SERVER_USER@$SERVER_HOST:$REMOTE_BASE_DIR/$album_name/"
done
echo
echo "All albums synced ✅"Command for this
./sync-all-albums.sh MusicOr
bash sync-all-albums.sh MusicLibraryThis library should contain Albums in this format
MusicLibrary/
├── Album1/
├── Album2/
└── Album3/
Script to Upload One Album at a time
#!/bin/bash
# -------------------------
# Music Album Sync Script
# -------------------------
SERVER_USER="ubuntu"
SERVER_HOST="blvaine.ddns.net"
REMOTE_BASE_DIR="/music"
# Album comes from argument
LOCAL_ALBUM="$1"
# -------------------------
# Validation
# -------------------------
if [ -z "$LOCAL_ALBUM" ]; then
echo "Usage: $0 \"Album Folder Name\""
exit 1
fi
if ! command -v rsync >/dev/null 2>&1; then
echo "Error: rsync not found. Run this in WSL or Git Bash."
exit 1
fi
echo "rsync found ✅"
echo "Testing SSH connection..."
ssh -o BatchMode=yes "$SERVER_USER@$SERVER_HOST" "echo SSH OK" >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "SSH connection failed. Make sure your SSH key is loaded."
exit 1
fi
echo "SSH connection OK ✅"
if [ ! -d "$LOCAL_ALBUM" ]; then
echo "Error: Local album directory not found:"
echo " $LOCAL_ALBUM"
exit 1
fi
REMOTE_DIR="$REMOTE_BASE_DIR/$(basename "$LOCAL_ALBUM")"
echo
echo "Syncing album:"
echo "$LOCAL_ALBUM → $SERVER_USER@$SERVER_HOST:$REMOTE_DIR"
echo
rsync -av --progress "$LOCAL_ALBUM/" "$SERVER_USER@$SERVER_HOST:$REMOTE_DIR/"
if [ $? -eq 0 ]; then
echo
echo "Album sync completed successfully ✅"
else
echo
echo "Album sync failed ❌"
exit 1
fiCommand to run
./sync-album.sh "Daft Punk - Random Access Memories (2013)"Back References: