summaryrefslogtreecommitdiff
path: root/scripts/wol-f3s
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/wol-f3s')
-rwxr-xr-xscripts/wol-f3s86
1 files changed, 86 insertions, 0 deletions
diff --git a/scripts/wol-f3s b/scripts/wol-f3s
new file mode 100755
index 0000000..263763b
--- /dev/null
+++ b/scripts/wol-f3s
@@ -0,0 +1,86 @@
+#!/bin/bash
+# Wake-on-LAN and shutdown script for f3s cluster (f0, f1, f2)
+#
+# Usage:
+# wol-f3s # Wake all three Beelinks
+# wol-f3s f0 # Wake only f0
+# wol-f3s f1 # Wake only f1
+# wol-f3s f2 # Wake only f2
+# wol-f3s shutdown # Shutdown all three Beelinks
+
+# MAC addresses
+F0_MAC="e8:ff:1e:d7:1c:ac" # f0 (192.168.1.130)
+F1_MAC="e8:ff:1e:d7:1e:44" # f1 (192.168.1.131)
+F2_MAC="e8:ff:1e:d7:1c:a0" # f2 (192.168.1.132)
+
+# IP addresses
+F0_IP="192.168.1.130"
+F1_IP="192.168.1.131"
+F2_IP="192.168.1.132"
+
+# SSH user
+SSH_USER="paul"
+
+# Broadcast address for your LAN
+BROADCAST="192.168.1.255"
+
+wake() {
+ local name=$1
+ local mac=$2
+
+ if [[ "$mac" == "XX:XX:XX:XX:XX:XX" ]]; then
+ echo "⚠️ $name MAC address not configured yet"
+ return 1
+ fi
+
+ echo "Sending WoL packet to $name ($mac)..."
+ wol -i "$BROADCAST" "$mac"
+}
+
+shutdown_host() {
+ local name=$1
+ local ip=$2
+
+ echo "Shutting down $name ($ip)..."
+ ssh -o ConnectTimeout=5 "$SSH_USER@$ip" "doas poweroff" 2>/dev/null && \
+ echo " ✓ Shutdown command sent to $name" || \
+ echo " ✗ Failed to reach $name (already down?)"
+}
+
+ACTION="${1:-all}"
+
+case "$ACTION" in
+ f0)
+ wake "f0" "$F0_MAC"
+ ;;
+ f1)
+ wake "f1" "$F1_MAC"
+ ;;
+ f2)
+ wake "f2" "$F2_MAC"
+ ;;
+ all|"")
+ wake "f0" "$F0_MAC"
+ wake "f1" "$F1_MAC"
+ wake "f2" "$F2_MAC"
+ ;;
+ shutdown|poweroff|down)
+ # This is to mute Gogios alerts for a day
+ ssh rex@blowfish.buetow.org touch /tmp/f3s_taken_down
+ ssh rex@fishfinger.buetow.org touch /tmp/f3s_taken_down
+ shutdown_host "f0" "$F0_IP"
+ shutdown_host "f1" "$F1_IP"
+ shutdown_host "f2" "$F2_IP"
+ echo ""
+ echo "✓ Shutdown commands sent to all machines."
+ exit 0
+ ;;
+ *)
+ echo "Usage: $0 [f0|f1|f2|all|shutdown]"
+ exit 1
+ ;;
+esac
+
+echo ""
+echo "✓ WoL packets sent. Machines should boot in a few seconds."
+echo " Wait ~30 seconds, then try: ssh paul@192.168.1.130"