#!/bin/bash # Minecraft Servers Backup Script (All Servers) # Backs up both Hutworld and Backrooms servers to TrueNAS BACKUP_DEST="hutson@10.10.10.200:/mnt/vault/users/backups/minecraft" DATE=$(date +%Y-%m-%d_%H%M) echo "[$(date)] Starting Minecraft servers backup..." # Backup Hutworld server HUTWORLD_SRC="$HOME/crafty/data/servers/19f604a9-f037-442d-9283-0761c73cfd60" HUTWORLD_BACKUP="/tmp/hutworld-$DATE.tar.gz" echo "[$(date)] Backing up Hutworld server..." tar -czf "$HUTWORLD_BACKUP" \ --exclude="*.jar" \ --exclude="cache" \ --exclude="libraries" \ --exclude=".paper-remapped" \ -C "$HOME/crafty/data/servers" \ 19f604a9-f037-442d-9283-0761c73cfd60 echo "[$(date)] Hutworld backup created: $(ls -lh $HUTWORLD_BACKUP | awk '{print $5}')" # Transfer Hutworld backup to TrueNAS sshpass -p 'GrilledCh33s3#' scp -o StrictHostKeyChecking=no "$HUTWORLD_BACKUP" "$BACKUP_DEST/" if [ $? -eq 0 ]; then echo "[$(date)] Hutworld backup transferred successfully" rm "$HUTWORLD_BACKUP" else echo "[$(date)] ERROR: Failed to transfer Hutworld backup" fi # Backup Backrooms server BACKROOMS_SRC="$HOME/crafty/data/servers/64079d6c-acb0-48c4-9b21-23e0fa354522" BACKROOMS_BACKUP="/tmp/backrooms-$DATE.tar.gz" echo "[$(date)] Backing up Backrooms server..." tar -czf "$BACKROOMS_BACKUP" \ --exclude="*.jar" \ --exclude="cache" \ --exclude="libraries" \ --exclude=".paper-remapped" \ -C "$HOME/crafty/data/servers" \ 64079d6c-acb0-48c4-9b21-23e0fa354522 echo "[$(date)] Backrooms backup created: $(ls -lh $BACKROOMS_BACKUP | awk '{print $5}')" # Transfer Backrooms backup to TrueNAS sshpass -p 'GrilledCh33s3#' scp -o StrictHostKeyChecking=no "$BACKROOMS_BACKUP" "$BACKUP_DEST/" if [ $? -eq 0 ]; then echo "[$(date)] Backrooms backup transferred successfully" rm "$BACKROOMS_BACKUP" else echo "[$(date)] ERROR: Failed to transfer Backrooms backup" fi # Clean up old backups (keep last 30 of each server) echo "[$(date)] Cleaning up old backups..." sshpass -p 'GrilledCh33s3#' ssh -o StrictHostKeyChecking=no hutson@10.10.10.200 ' cd /mnt/vault/users/backups/minecraft # Keep only last 30 Hutworld backups ls -t hutworld-*.tar.gz 2>/dev/null | tail -n +31 | xargs -r rm -f # Keep only last 30 Backrooms backups ls -t backrooms-*.tar.gz 2>/dev/null | tail -n +31 | xargs -r rm -f echo "Current backups:" echo "Hutworld: $(ls -1 hutworld-*.tar.gz 2>/dev/null | wc -l) backups" echo "Backrooms: $(ls -1 backrooms-*.tar.gz 2>/dev/null | wc -l) backups" echo "Total size: $(du -sh . | cut -f1)" ' echo "[$(date)] All backups complete!"