jellyfin-media/scripts/upload-to-netcup.sh

61 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Upload media files directly to Netcup server
# Usage: ./upload-to-netcup.sh <local-path> <media-type>
# Example: ./upload-to-netcup.sh /home/jeffe/Shows shows
# ./upload-to-netcup.sh /home/jeffe/Movies movies
# ./upload-to-netcup.sh /home/jeffe/Music music
set -e
LOCAL_PATH="${1:-.}"
MEDIA_TYPE="${2:-shows}"
NETCUP_HOST="netcup"
REMOTE_PATH="/opt/media-server/media/${MEDIA_TYPE}"
echo "=========================================="
echo " Upload Media to Netcup RS 8000"
echo "=========================================="
echo ""
echo "Source: $LOCAL_PATH"
echo "Destination: ${NETCUP_HOST}:${REMOTE_PATH}"
echo ""
# Calculate size
echo "Analyzing files..."
LOCAL_SIZE=$(du -sh "$LOCAL_PATH" 2>/dev/null | cut -f1)
FILE_COUNT=$(find "$LOCAL_PATH" -type f 2>/dev/null | wc -l)
echo ""
echo "Upload Summary:"
echo "==============="
echo "Total size: $LOCAL_SIZE"
echo "Total files: $FILE_COUNT"
echo ""
# Show what will be uploaded
echo "Contents to upload:"
ls -la "$LOCAL_PATH" | head -15
echo ""
# Run rsync with progress
echo "Starting upload..."
echo ""
rsync -avz --progress \
--human-readable \
--stats \
-e "ssh -i ~/.ssh/netcup_ed25519" \
"$LOCAL_PATH/" \
"${NETCUP_HOST}:${REMOTE_PATH}/"
echo ""
echo "=========================================="
echo " Upload Complete!"
echo "=========================================="
echo ""
# Show remote storage
echo "Current storage on Netcup:"
ssh ${NETCUP_HOST} "du -sh ${REMOTE_PATH}"