#Server Management Scripts

Essential scripts for managing servers in production.


#Health Check Script

bash
1#!/bin/bash
2set -euo pipefail
3
4SERVERS=("web-01" "web-02" "api-01" "db-01")
5
6check_server() {
7    local server=$1
8    local port=${2:-22}
9    
10    if nc -zw5 "$server" "$port" 2>/dev/null; then
11        echo "✅ $server:$port - healthy"
12        return 0
13    else
14        echo "❌ $server:$port - unreachable"
15        return 1
16    fi
17}
18
19main() {
20    echo "=== Server Health Check ==="
21    echo "Time: $(date)"
22    echo ""
23    
24    local failed=0
25    for server in "${SERVERS[@]}"; do
26        check_server "$server" || ((failed++))
27    done
28    
29    echo ""
30    echo "Summary: $((${#SERVERS[@]} - failed))/${#SERVERS[@]} healthy"
31    
32    [ $failed -eq 0 ] || exit 1
33}
34
35main

#Log Rotation Script

bash
1#!/bin/bash
2LOG_DIR="/var/log/myapp"
3DAYS_TO_KEEP=7
4
5find "$LOG_DIR" -name "*.log" -mtime +$DAYS_TO_KEEP -delete
6find "$LOG_DIR" -name "*.gz" -mtime +30 -delete
7
8# Compress old logs
9find "$LOG_DIR" -name "*.log" -mtime +1 -exec gzip {} \;
10
11echo "Log rotation complete"

#Backup Script

bash
1#!/bin/bash
2set -euo pipefail
3
4BACKUP_DIR="/backup"
5DATE=$(date +%Y%m%d)
6RETENTION_DAYS=7
7
8# Create backup
9tar -czf "$BACKUP_DIR/app-$DATE.tar.gz" /var/www/app
10
11# Remove old backups
12find "$BACKUP_DIR" -name "app-*.tar.gz" -mtime +$RETENTION_DAYS -delete
13
14echo "Backup complete: app-$DATE.tar.gz"

#Deployment Script

bash
1#!/bin/bash
2set -euo pipefail
3
4APP_DIR="/var/www/app"
5RELEASE_DIR="/releases"
6VERSION=${1:-latest}
7
8echo "Deploying version: $VERSION"
9
10# Download release
11wget -q "https://releases.example.com/$VERSION.tar.gz" -O /tmp/release.tar.gz
12
13# Extract
14mkdir -p "$RELEASE_DIR/$VERSION"
15tar -xzf /tmp/release.tar.gz -C "$RELEASE_DIR/$VERSION"
16
17# Switch symlink
18ln -sfn "$RELEASE_DIR/$VERSION" "$APP_DIR"
19
20# Restart services
21sudo systemctl restart myapp
22
23echo "Deployment complete!"

#Summary

Key server management tasks:

  • Health monitoring
  • Log management
  • Backups
  • Deployments
  • Service restarts