Initial PropHunt server setup
- Complete bare metal installer with SteamCMD, MetaMod, SourceMod, ULX - Docker installer with one-liner support - Server configuration files (server.cfg, autoexec.cfg, mount.cfg) - Update script for easy maintenance - Backup script for server data - Workshop collection documentation - SourceMod admin configuration template
This commit is contained in:
76
scripts/backup.sh
Executable file
76
scripts/backup.sh
Executable file
@@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
#===============================================================================
|
||||
# Garry's Mod PropHunt Server - Backup Script
|
||||
#===============================================================================
|
||||
|
||||
INSTALL_DIR="${GMOD_INSTALL_DIR:-/home/gmod}"
|
||||
SERVER_DIR="${INSTALL_DIR}/serverfiles"
|
||||
BACKUP_DIR="${BACKUP_DIR:-/home/gmod/backups}"
|
||||
DATE=$(date +%Y%m%d_%H%M%S)
|
||||
BACKUP_NAME="gmod_prophunt_backup_${DATE}.tar.gz"
|
||||
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
||||
log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
|
||||
|
||||
echo -e "${GREEN}"
|
||||
echo "╔═══════════════════════════════════════════════════════════════╗"
|
||||
echo "║ 💾 Garry's Mod PropHunt Backup Script 💾 ║"
|
||||
echo "╚═══════════════════════════════════════════════════════════════╝"
|
||||
echo -e "${NC}"
|
||||
|
||||
# Create backup directory
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
log_info "Creating backup..."
|
||||
|
||||
# Items to backup
|
||||
BACKUP_ITEMS=(
|
||||
"$SERVER_DIR/garrysmod/cfg"
|
||||
"$SERVER_DIR/garrysmod/data"
|
||||
"$SERVER_DIR/garrysmod/addons/ulib"
|
||||
"$SERVER_DIR/garrysmod/addons/ulx"
|
||||
"$SERVER_DIR/garrysmod/addons/sourcemod/configs"
|
||||
"$SERVER_DIR/garrysmod/addons/sourcemod/data"
|
||||
)
|
||||
|
||||
# Create temporary directory for backup
|
||||
TEMP_BACKUP="/tmp/gmod_backup_${DATE}"
|
||||
mkdir -p "$TEMP_BACKUP"
|
||||
|
||||
# Copy files to temp directory
|
||||
for item in "${BACKUP_ITEMS[@]}"; do
|
||||
if [[ -e "$item" ]]; then
|
||||
cp -r "$item" "$TEMP_BACKUP/" 2>/dev/null
|
||||
fi
|
||||
done
|
||||
|
||||
# Create compressed archive
|
||||
cd /tmp
|
||||
tar -czf "$BACKUP_DIR/$BACKUP_NAME" "gmod_backup_${DATE}"
|
||||
|
||||
# Cleanup temp directory
|
||||
rm -rf "$TEMP_BACKUP"
|
||||
|
||||
# Keep only last 7 backups
|
||||
cd "$BACKUP_DIR"
|
||||
ls -t gmod_prophunt_backup_*.tar.gz | tail -n +8 | xargs -r rm
|
||||
|
||||
log_success "Backup created: $BACKUP_DIR/$BACKUP_NAME"
|
||||
|
||||
# Show backup size
|
||||
BACKUP_SIZE=$(du -h "$BACKUP_DIR/$BACKUP_NAME" | cut -f1)
|
||||
echo ""
|
||||
echo -e "${BLUE}Backup Details:${NC}"
|
||||
echo " • Location: $BACKUP_DIR/$BACKUP_NAME"
|
||||
echo " • Size: $BACKUP_SIZE"
|
||||
echo ""
|
||||
|
||||
# List recent backups
|
||||
echo -e "${BLUE}Recent Backups:${NC}"
|
||||
ls -lh "$BACKUP_DIR"/*.tar.gz 2>/dev/null | tail -5
|
||||
Reference in New Issue
Block a user