LinuxGSM for Game Server Management
LinuxGSM es un poderoso línea de comandos tool that streamlines game server management on Linux. It provides automated installation, updates, copia de seguridads, and monitoreo for dozens of servidores de juegos. Esta guía cubre LinuxGSM installation, server implementación, command usage, monitoreo setup, alert configuration, copia de seguridad scheduling, and cron-based automation. LinuxGSM significantly reduces operational overhead for multi-server environments.
Tabla de contenidos
- Overview
- System Requirements
- Instalaing LinuxGSM
- Server Deployment
- Core Commands
- Configuration
- Monitoring and Alerts
- [Backup Management](#copia de seguridad-management)
- Update Automation
- Advanced Usage
- Troubleshooting
- Conclusion
Descripción general
LinuxGSM provides:
- Automated server installation
- One-command updates
- Scheduled copia de seguridads
- Monitoring and alerting
- Log rotation and management
- Server validation
- Console access
- Update scheduling
- Status dashboards
Supported games include: Counter-Strike 2, Rust, Valheim, ARK, Terraria, Factorio, 7 Days to Die, and 50+ others.
Requisitos del sistema
LinuxGSM requires:
- Ubuntu 20.04 LTS, CentOS 8+, or similar
- 2GB RAM minimum
- 20GB+ disk space per server
- Root or sudo access
- Stable internet connection
- curl or wget installed
LinuxGSM is lightweight and efficient.
Instalaing LinuxGSM
Create dedicated gameserver user:
sudo useradd -m -s /bin/bash gameserver
sudo usermod -aG sudo gameserver
sudo -u gameserver mkdir -p /home/gameserver/gameservers
Instala system dependencies:
sudo apt-get update
sudo apt-get install -y curl wget ca-certificates bzip2 gzip unzip lib32gcc1 lib32stdc++6
Descarga LinuxGSM installer:
cd /home/gameserver/gameservers
sudo -u gameserver wget -q https://linuxgsm.sh -O linuxgsm.sh
sudo chmod +x linuxgsm.sh
Instala specific game server using LinuxGSM:
# For Valheim
sudo -u gameserver ./linuxgsm.sh vhserver
# For Rust
sudo -u gameserver ./linuxgsm.sh rustserver
# For Counter-Strike 2
sudo -u gameserver ./linuxgsm.sh csgoserver
This creates a vhserver executable in the current directory.
Verifica la instalación:
sudo -u gameserver ./vhserver --help
sudo -u gameserver ./vhserver version
Server Deployment
Deploy a new server with LinuxGSM:
# Navigate to game server directory
cd /home/gameserver/gameservers
# Install Valheim server
sudo -u gameserver ./vhserver install
# Follow interactive prompts for:
# - IP address
# - Port number
# - Server name
# - Server password
# - Admin password
Verifica server installation:
sudo -u gameserver ./vhserver info
# Expected output showing:
# - Game: Valheim
# - Service: vhserver
# - Status: NOT RUNNING (on first check)
# - Executable: /path/to/game/binary
Start the server:
sudo -u gameserver ./vhserver start
# Monitor startup
sudo -u gameserver ./vhserver console
# Press Ctrl+B then Ctrl+D to exit console
Verifica server is running:
sudo -u gameserver ./vhserver status
# Expected output:
# Status: RUNNING
# Players: 0 / MaxPlayers
Core Commands
Essential LinuxGSM commands:
# Server Control
./vhserver start # Start server
./vhserver stop # Stop server gracefully
./vhserver restart # Restart server
./vhserver console # Attach to console
./vhserver send "command" # Send command to server
# Information
./vhserver status # Show server status
./vhserver info # Display server information
./vhserver details # Detailed information
./vhserver test-status # Test connection
# Updates and Maintenance
./vhserver update # Update to latest version
./vhserver validate # Validate server installation
./vhserver install # Install server components
# Logging
./vhserver logs # View latest logs
./vhserver tail # Real-time log tail
./vhserver postdetails # Generate support details
# Other
./vhserver query # Query server status
./vhserver backup # Create backup
./vhserver check-update # Check for available updates
Configuración
Edit server configuration file:
# List configuration files
ls -la /home/gameserver/gameservers/vhserver-*
# Edit game configuration
sudo -u gameserver nano /home/gameserver/gameservers/vhserver/serverconfig.xml
# Edit LinuxGSM config
sudo -u gameserver nano /home/gameserver/gameservers/lgsm/config-lgsm/vhserver/_default.cfg
Create custom configuration script:
sudo tee /home/gameserver/configure_server.sh > /dev/null <<'EOF'
#!/bin/bash
# Script to configure LinuxGSM servers
# Usage: ./configure_server.sh <server_name>
SERVER_NAME="$1"
LGSM_DIR="/home/gameserver/gameservers"
if [ -z "$SERVER_NAME" ]; then
echo "Usage: $0 <server_name>"
echo "Example: $0 vhserver"
exit 1
fi
# Get server type (first part of name)
SERVER_TYPE=$(echo "$SERVER_NAME" | sed 's/server//')
echo "Configuring $SERVER_NAME..."
# Set common parameters
cd "$LGSM_DIR"
# Start with defaults
./lgsm.sh "$SERVER_TYPE" config
# Configure based on server type
case "$SERVER_TYPE" in
vh)
# Valheim specific
sed -i 's/server.name=".*"/server.name="My Valheim Server"/' "$LGSM_DIR/$SERVER_NAME/config.cfg"
;;
rust)
# Rust specific
sed -i 's/server.name=".*"/server.name="My Rust Server"/' "$LGSM_DIR/$SERVER_NAME/config.cfg"
;;
csgo)
# Counter-Strike specific
sed -i 's/server.name=".*"/server.name="My CS Server"/' "$LGSM_DIR/$SERVER_NAME/config.cfg"
;;
esac
echo "Configuration complete"
EOF
sudo chmod +x /home/gameserver/configure_server.sh
Supervisión and Alerts
Enable monitoreo:
# Check monitoring config
sudo -u gameserver cat /home/gameserver/gameservers/lgsm/config-lgsm/vhserver/_default.cfg | grep -i monitor
# Enable email alerts
sudo -u gameserver nano /home/gameserver/gameservers/lgsm/config-lgsm/vhserver/_email.cfg
Configura email notifications:
sudo tee /home/gameserver/gameservers/lgsm/config-lgsm/vhserver/_email.cfg > /dev/null <<'EOF'
## Email Configuration
## Email Alerts
emailalert="on"
## Email address to send alerts to
alertemail="[email protected]"
## SMTP settings
smtphost="smtp.gmail.com"
smtpport="587"
smtpuser="[email protected]"
smtppass="your-app-password"
## Alert conditions
alertonstart="on"
alertonstop="on"
alertonfail="on"
alertonupdate="on"
EOF
Create monitoreo script:
sudo tee /home/gameserver/monitor_all_servers.sh > /dev/null <<'EOF'
#!/bin/bash
SERVERS_DIR="/home/gameserver/gameservers"
echo "=== LinuxGSM Server Status Report ==="
echo "Generated: $(date)"
echo ""
# Array to store status
RUNNING=0
STOPPED=0
FAILED=0
# Check all servers
for server in $(ls -d ${SERVERS_DIR}/*server 2>/dev/null | xargs -I {} basename {}); do
if [ -x "$SERVERS_DIR/$server" ]; then
STATUS=$($SERVERS_DIR/$server query 2>&1 | grep -i "status")
if echo "$STATUS" | grep -q "RUNNING"; then
echo "✓ $server: RUNNING"
((RUNNING++))
elif echo "$STATUS" | grep -q "STOPPED"; then
echo "✗ $server: STOPPED"
((STOPPED++))
else
echo "? $server: UNKNOWN"
((FAILED++))
fi
fi
done
echo ""
echo "Summary: Running=$RUNNING, Stopped=$STOPPED, Failed=$FAILED"
EOF
sudo chmod +x /home/gameserver/monitor_all_servers.sh
Monitor server in real-time:
# Get status updates every 5 seconds
watch -n 5 'cd /home/gameserver/gameservers && ./vhserver status'
# Generate status report
/home/gameserver/monitor_all_servers.sh
Backup Management
Create scheduled copia de seguridads:
# Manual backup
cd /home/gameserver/gameservers
sudo -u gameserver ./vhserver backup
# List backups
sudo -u gameserver ./vhserver backup list
# Restore from backup
sudo -u gameserver ./vhserver backup restore backup-name-here
Create copia de seguridad automation:
sudo tee /home/gameserver/backup_all_servers.sh > /dev/null <<'EOF'
#!/bin/bash
SERVERS_DIR="/home/gameserver/gameservers"
DATE=$(date +%Y%m%d_%H%M%S)
echo "Starting server backups at $(date)"
for server in $(ls -d ${SERVERS_DIR}/*server 2>/dev/null | xargs -I {} basename {}); do
if [ -x "$SERVERS_DIR/$server" ]; then
echo "Backing up $server..."
cd "$SERVERS_DIR"
sudo -u gameserver ./$server backup
if [ $? -eq 0 ]; then
echo "✓ Backup successful for $server"
else
echo "✗ Backup failed for $server"
fi
fi
done
echo "Backup process completed at $(date)"
EOF
sudo chmod +x /home/gameserver/backup_all_servers.sh
Schedule automatic copia de seguridads:
# Edit gameserver crontab
sudo -u gameserver crontab -e
# Add automatic backup every 6 hours
0 */6 * * * /home/gameserver/backup_all_servers.sh >> /tmp/backups.log 2>&1
# Backup daily at 3 AM
0 3 * * * /home/gameserver/gameservers/vhserver backup
# Save and exit
Verifica cron jobs:
sudo -u gameserver crontab -l
Update Automation
Check for updates:
cd /home/gameserver/gameservers
# Check single server
sudo -u gameserver ./vhserver check-update
# Check all servers
for server in $(ls -d *server 2>/dev/null | xargs -I {} basename {}); do
echo "Checking $server..."
./$server check-update
done
Crea unutomated update script:
sudo tee /home/gameserver/update_all_servers.sh > /dev/null <<'EOF'
#!/bin/bash
SERVERS_DIR="/home/gameserver/gameservers"
LOG_FILE="/var/log/linuxgsm-updates.log"
{
echo "=========================================="
echo "LinuxGSM Update Report: $(date)"
echo "=========================================="
for server in $(ls -d ${SERVERS_DIR}/*server 2>/dev/null | xargs -I {} basename {}); do
if [ -x "$SERVERS_DIR/$server" ]; then
echo ""
echo "Updating $server..."
cd "$SERVERS_DIR"
# Check if update is available
if sudo -u gameserver ./$server check-update | grep -q "update available"; then
echo "Update available for $server, applying..."
# Stop server gracefully
sudo -u gameserver ./$server stop
sleep 10
# Update server
sudo -u gameserver ./$server update
# Start server
sudo -u gameserver ./$server start
echo "✓ $server updated successfully"
else
echo "✓ $server is up to date"
fi
fi
done
echo ""
echo "Update process completed at $(date)"
} | tee -a "$LOG_FILE"
EOF
sudo chmod +x /home/gameserver/update_all_servers.sh
Schedule automatic updates:
# Edit crontab
sudo -u gameserver crontab -e
# Auto-update all servers daily at 4 AM
0 4 * * * /home/gameserver/update_all_servers.sh
Advanced Usage
Server Cloning
Clone existing server configuration:
# List available servers
ls -la /home/gameserver/gameservers/
# Clone configuration
cd /home/gameserver/gameservers
sudo -u gameserver cp -r vhserver vhserver2
sudo -u gameserver sed -i 's/2456/2457/' vhserver2/config.cfg
# Start new server
sudo -u gameserver ./vhserver2 install
sudo -u gameserver ./vhserver2 start
Dashboard Generation
Create HTML status dashboard:
sudo tee /home/gameserver/generate_dashboard.sh > /dev/null <<'EOF'
#!/bin/bash
SERVERS_DIR="/home/gameserver/gameservers"
HTML_FILE="/var/www/html/server-status.html"
cat > "$HTML_FILE" <<'HTML'
<!DOCTYPE html>
<html>
<head>
<title>Game Server Status</title>
<meta http-equiv="refresh" content="60">
<style>
body { font-family: monospace; }
.running { color: green; }
.stopped { color: red; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid black; padding: 8px; text-align: left; }
</style>
</head>
<body>
<h1>Game Server Status</h1>
<p>Last updated: $(date)</p>
<table>
<tr>
<th>Server</th>
<th>Status</th>
<th>Players</th>
<th>Uptime</th>
</tr>
HTML
for server in $(ls -d ${SERVERS_DIR}/*server 2>/dev/null | xargs -I {} basename {}); do
if [ -x "$SERVERS_DIR/$server" ]; then
STATUS=$($SERVERS_DIR/$server status 2>&1)
PLAYER_COUNT=$($SERVERS_DIR/$server query 2>&1 | grep -i players | cut -d':' -f2 | head -1)
if echo "$STATUS" | grep -q "RUNNING"; then
STATUS_CLASS="running"
STATUS_TEXT="RUNNING"
else
STATUS_CLASS="stopped"
STATUS_TEXT="STOPPED"
fi
echo " <tr>" >> "$HTML_FILE"
echo " <td>$server</td>" >> "$HTML_FILE"
echo " <td class=\"$STATUS_CLASS\">$STATUS_TEXT</td>" >> "$HTML_FILE"
echo " <td>$PLAYER_COUNT</td>" >> "$HTML_FILE"
echo " <td>--</td>" >> "$HTML_FILE"
echo " </tr>" >> "$HTML_FILE"
fi
done
cat >> "$HTML_FILE" <<'HTML'
</table>
</body>
</html>
HTML
echo "Dashboard generated at $HTML_FILE"
EOF
sudo chmod +x /home/gameserver/generate_dashboard.sh
Batch Operations
Perform operations on all servers:
# Start all servers
for server in /home/gameserver/gameservers/*server; do
sudo -u gameserver $server start
done
# Stop all servers
for server in /home/gameserver/gameservers/*server; do
sudo -u gameserver $server stop
done
# Check status of all servers
for server in /home/gameserver/gameservers/*server; do
sudo -u gameserver $server status
done
# Create backups of all servers
for server in /home/gameserver/gameservers/*server; do
sudo -u gameserver $server backup
done
Solución de problemas
Common issues:
# Server won't start
sudo -u gameserver ./vhserver console # Check console for errors
# Check system resources
free -h
df -h
# Update LinuxGSM itself
cd /home/gameserver/gameservers
sudo -u gameserver wget -q https://linuxgsm.sh -O linuxgsm-update.sh
sudo -u gameserver ./linuxgsm-update.sh
# Validate installation
sudo -u gameserver ./vhserver validate
# Get support details
sudo -u gameserver ./vhserver postdetails
Conclusión
LinuxGSM dramatically simplifies game server management across multiple servers. By leveraging its automation capabilities, you can reduce operational overhead by 80% or more.
Key takeaways:
- Use LinuxGSM for consistent server management
- Automate copia de seguridads with scheduled cron jobs
- Set up monitoreo and alerting
- Schedule automatic updates for seamless patches
- Clone servers for quick scaling
- Generate dashboards for operations visibility
- Monitor logs regularly for issues
A LinuxGSM-based infrastructure enables efficient, professional game server hosting at scale.


