77 lines
2.6 KiB
Bash
77 lines
2.6 KiB
Bash
#!/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!" |