Files
openclaw/skills/server-management/server-update
Clawd Bot ca9b510922 chore: align with upstream openclaw/openclaw and overlay local additions
- Reset master to upstream/main (16,697 commits)
- Overlay 2,271 local-only files (skills, tools, workspace, configs, apps)
- Restore IDENTITY.md and USER.md templates
- Build verified, gateway running, Discord working

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 07:40:46 +01:00

77 lines
2.0 KiB
Bash

#!/bin/bash
# Server Update - Update packages on servers
set -e
SERVERS=(
"192.168.1.220:localhost:alex:none"
"192.168.1.23:nginx-server:alex:~/.ssh/id_ed25519_local"
"192.168.1.24:raspberry-pi:alex:none"
)
ssh_run() {
local ip=$1
local user=$2
local key=$3
shift 3
local cmd="$@"
if [ "$ip" == "192.168.1.220" ]; then
eval "$cmd"
else
if [ "$key" == "none" ]; then
ssh -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
else
ssh -i "${key/#\~/$HOME}" -o StrictHostKeyChecking=no "$user@$ip" "$cmd"
fi
fi
}
update_server() {
local server_info=$1
IFS=':' read -r ip name user key <<< "$server_info"
echo ""
echo "═══════════════════════════════════════════════════════════════"
echo "📦 Updating $name ($ip)"
echo "═══════════════════════════════════════════════════════════════"
ssh_run "$ip" "$user" "$key" \
'sudo apt update -qq && sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y 2>&1 | grep -E "upgraded|installed|removed" | tail -5'
echo "$name updated!"
}
# Parse arguments
ALL=false
SERVER=""
while [[ $# -gt 0 ]]; do
case $1 in
--all) ALL=true; shift ;;
--server) SERVER="$2"; shift 2 ;;
*) echo "Unknown option: $1"; exit 1 ;;
esac
done
if [ "$ALL" == "true" ]; then
for server in "${SERVERS[@]}"; do
update_server "$server" &
done
wait
echo ""
echo "✅ All servers updated!"
elif [ -n "$SERVER" ]; then
for server in "${SERVERS[@]}"; do
if [[ "$server" == "$SERVER:"* ]]; then
update_server "$server"
exit 0
fi
done
echo "❌ Unknown server: $SERVER"
exit 1
else
echo "Usage: server-update --all | --server <IP>"
exit 1
fi