From 5940d99b099abb1745660e21bd16387922a0e69a Mon Sep 17 00:00:00 2001
From: Paul Buetow
Date: Sun, 11 Jan 2026 10:48:19 +0200
Subject: Update content for html
---
about/resources.html | 206 ++++++++++-----------
...4-12-03-f3s-kubernetes-with-freebsd-part-2.html | 76 ++++++--
gemfeed/atom.xml | 78 ++++++--
index.html | 2 +-
uptime-stats.html | 2 +-
5 files changed, 232 insertions(+), 132 deletions(-)
diff --git a/about/resources.html b/about/resources.html
index 66f68843..2cff1495 100644
--- a/about/resources.html
+++ b/about/resources.html
@@ -50,54 +50,54 @@
In random order:
+
21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
+
Perl New Features; Joshua McAdams, brian d foy; Perl School
+
DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
+
Terraform Cookbook; Mikael Krief; Packt Publishing
Systemprogrammierung in Go; Frank Müller; dpunkt
-
DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
-
Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
+
Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
+
Ultimate Go Notebook; Bill Kennedy
+
Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
+
Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
+
Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
-
C++ Programming Language; Bjarne Stroustrup;
+
Site Reliability Engineering; How Google runs production systems; O'Reilly
+
Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
+
Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
+
Data Science at the Command Line; Jeroen Janssens; O'Reilly
+
Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
+
Leanring eBPF; Liz Rice; O'Reilly
+
Pro Puppet; James Turnbull, Jeffrey McCune; Apress
+
Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
+
Developing Games in Java; David Brackeen and others...; New Riders
+
Raku Fundamentals; Moritz Lenz; Apress
+
The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
+
Concurrency in Go; Katherine Cox-Buday; O'Reilly
The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
-
Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
-
Polished Ruby Programming; Jeremy Evans; Packt Publishing
+
The Pragmatic Programmer; David Thomas; Addison-Wesley
97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
-
The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
-
Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook
-
The Docker Book; James Turnbull; Kindle
-
Effective Java; Joshua Bloch; Addison-Wesley Professional
-
Higher Order Perl; Mark Dominus; Morgan Kaufmann
-
Perl New Features; Joshua McAdams, brian d foy; Perl School
-
Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
+
Polished Ruby Programming; Jeremy Evans; Packt Publishing
+
Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
+
Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
+
C++ Programming Language; Bjarne Stroustrup;
The Practise of System and Network Administration; Thomas A. Limoncelli, Christina J. Hogan, Strata R. Chalup; Addison-Wesley Professional Pro Git; Scott Chacon, Ben Straub; Apress
-
Developing Games in Java; David Brackeen and others...; New Riders
-
21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
-
The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
-
Leanring eBPF; Liz Rice; O'Reilly
-
Raku Recipes; J.J. Merelo; Apress
-
Ultimate Go Notebook; Bill Kennedy
-
Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
-
Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
-
Concurrency in Go; Katherine Cox-Buday; O'Reilly
-
Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
-
Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
-
Modern Perl; Chromatic ; Onyx Neon Press
-
100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
+
The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
+
Java ist auch eine Insel; Christian Ullenboom;
Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
-
Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
-
Funktionale Programmierung; Peter Pepper; Springer
DNS and BIND; Cricket Liu; O'Reilly
-
Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
-
The Pragmatic Programmer; David Thomas; Addison-Wesley
-
Terraform Cookbook; Mikael Krief; Packt Publishing
Effective awk programming; Arnold Robbins; O'Reilly
-
Raku Fundamentals; Moritz Lenz; Apress
-
Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
-
Pro Puppet; James Turnbull, Jeffrey McCune; Apress
-
Java ist auch eine Insel; Christian Ullenboom;
-
Data Science at the Command Line; Jeroen Janssens; O'Reilly
-
Chaos Engineering - System Resiliency in Practice; Casey Rosenthal and Nora Jones; eBook
-
The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
-
Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
-
Site Reliability Engineering; How Google runs production systems; O'Reilly
+
Modern Perl; Chromatic ; Onyx Neon Press
+
Raku Recipes; J.J. Merelo; Apress
+
Effective Java; Joshua Bloch; Addison-Wesley Professional
+
100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
+
Higher Order Perl; Mark Dominus; Morgan Kaufmann
+
Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
+
Funktionale Programmierung; Peter Pepper; Springer
+
Seeking SRE: Conversations About Running Production Systems at Scale; David N. Blank-Edelman; eBook
+
The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
+
Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
+
The Docker Book; James Turnbull; Kindle
Technical references
@@ -106,10 +106,10 @@
BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
-
Implementing Service Level Objectives; Alex Hidalgo; O'Reilly
-
The Linux Programming Interface; Michael Kerrisk; No Starch Press
Go: Design Patterns for Real-World Projects; Mat Ryer; Packt
+
Implementing Service Level Objectives; Alex Hidalgo; O'Reilly
Relayd and Httpd Mastery; Michael W Lucas
+
The Linux Programming Interface; Michael Kerrisk; No Starch Press
Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
@@ -118,44 +118,44 @@
In random order:
-
Influence without Authority; A. Cohen, D. Bradford; Wiley
-
The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups; Gergely Orosz; Audiobook
-
Ultralearning; Anna Laurent; Self-published via Amazon
-
Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
-
Ultralearning; Scott Young; Thorsons
-
The Good Enough Job; Simone Stolzoff; Ebury Edge
-
Atomic Habits; James Clear; Random House Business
-
So Good They Can't Ignore You; Cal Newport; Business Plus
-
Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
-
The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)
-
Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
-
The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
-
The Power of Now; Eckhard Tolle; Yellow Kite
-
The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
+
Eat That Frog!; Brian Tracy; Hodder Paperbacks
The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd
-
Meditation for Mortals, Oliver Burkeman, Audiobook
-
Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
-
The Bullet Journal Method; Ryder Carroll; Fourth Estate
-
The Joy of Missing Out; Christina Crook; New Society Publishers
-
Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
-
Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
+
Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
+
101 Essays that change the way you think; Brianna Wiest; Audiobook
Eat That Frog; Brian Tracy
-
Eat That Frog!; Brian Tracy; Hodder Paperbacks
+
The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups; Gergely Orosz; Audiobook
+
Deep Work; Cal Newport; Piatkus
Psycho-Cybernetics; Maxwell Maltz; Perigee Books
-
Stop starting, start finishing; Arne Roock; Lean-Kanban University
-
The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
-
Digital Minimalism; Cal Newport; Portofolio Penguin
+
The Bullet Journal Method; Ryder Carroll; Fourth Estate
The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
-
101 Essays that change the way you think; Brianna Wiest; Audiobook
-
97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
+
The Power of Now; Eckhard Tolle; Yellow Kite
+
So Good They Can't Ignore You; Cal Newport; Business Plus
+
Digital Minimalism; Cal Newport; Portofolio Penguin
+
The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
Slow Productivity; Cal Newport; Penguin Random House
-
The Courage to Be Disliked; Ichiro Kishimi and Fumitake Koga; Audiobook
+
Getting Things Done; David Allen
+
The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
+
Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
+
The Good Enough Job; Simone Stolzoff; Ebury Edge
+
Atomic Habits; James Clear; Random House Business
+
The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
+
97 Things Every Engineering Manager Should Know; Camille Fournier; Audiobook
+
Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
+
Influence without Authority; A. Cohen, D. Bradford; Wiley
+
Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
+
Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
+
Meditation for Mortals, Oliver Burkeman, Audiobook
Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
-
Deep Work; Cal Newport; Piatkus
-
Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
-
Getting Things Done; David Allen
+
Ultralearning; Anna Laurent; Self-published via Amazon
+
The Courage to Be Disliked; Ichiro Kishimi and Fumitake Koga; Audiobook
+
Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
Soft Skills; John Sommez; Manning Publications
+
The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)
+
Ultralearning; Scott Young; Thorsons
+
Stop starting, start finishing; Arne Roock; Lean-Kanban University
+
The Joy of Missing Out; Christina Crook; New Society Publishers
@@ -164,31 +164,31 @@
Some of these were in-person with exams; others were online learning lectures only. In random order:
-
Apache Tomcat Best Practises; 3-day on-site training
+
Developing IaC with Terraform (with Live Lessons); O'Reilly Online
+
Scripting Vim; Damian Conway; O'Reilly Online
Red Hat Certified System Administrator; Course + certification (Although I had the option, I decided not to take the next course as it is more effective to self learn what I need)
-
MySQL Deep Dive Workshop; 2-day on-site training
-
Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
-
Structure and Interpretation of Computer Programs; Harold Abelson and more...;
+
Functional programming lecture; Remote University of Hagen
+
Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
+
MySQL Deep Dive Workshop; 2-day on-site training
Ultimate Go Programming; Bill Kennedy; O'Reilly Online
-
Cloud Operations on AWS - Learn how to configure, deploy, maintain, and troubleshoot your AWS environments; 3-day online live training with labs; Amazon
+
Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
Protocol buffers; O'Reilly Online
-
The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
-
AWS Immersion Day; Amazon; 1-day interactive online training
-
Developing IaC with Terraform (with Live Lessons); O'Reilly Online
-
Functional programming lecture; Remote University of Hagen
+
Structure and Interpretation of Computer Programs; Harold Abelson and more...;
F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
+
Apache Tomcat Best Practises; 3-day on-site training
+
AWS Immersion Day; Amazon; 1-day interactive online training
+
The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
-
Scripting Vim; Damian Conway; O'Reilly Online
Technical guides
These are not whole books, but guides (smaller or larger) which I found very useful. in random order:
+
Raku Guide at https://raku.guide
Advanced Bash-Scripting Guide
How CPUs work at https://cpu.land
-
Raku Guide at https://raku.guide
Podcasts
@@ -197,21 +197,21 @@
In random order:
-
Hidden Brain
-
Pratical AI
-
Maintainable
-
Fallthrough [Golang]
Backend Banter
-
Wednesday Wisdom
+
BSD Now [BSD]
Fork Around And Find Out
Cup o' Go [Golang]
-
Deep Questions with Cal Newport
-
The Pragmatic Engineer Podcast
+
Pratical AI
The ProdCast (Google SRE Podcast)
+
The Pragmatic Engineer Podcast
Modern Mentor
-
Dev Interrupted
-
BSD Now [BSD]
+
Deep Questions with Cal Newport
+
Hidden Brain
+
Maintainable
The Changelog Podcast(s)
+
Fallthrough [Golang]
+
Dev Interrupted
+
Wednesday Wisdom
Podcasts I liked
@@ -219,10 +219,10 @@
Ship It (predecessor of Fork Around And Find Out)
-
Go Time (predecessor of fallthrough)
+
Modern Mentor
FLOSS weekly
+
Go Time (predecessor of fallthrough)
CRE: Chaosradio Express [german]
-
Modern Mentor
Java Pub House
Newsletters I like
@@ -230,28 +230,28 @@
This is a mix of tech and non-tech newsletters I am subscribed to. In random order:
-
Monospace Mentor
-
The Pragmatic Engineer
-
Register Spill
-
Changelog News
-
VK Newsletter
-
The Valuable Dev
-
Applied Go Weekly Newsletter
Ruby Weekly
Andreas Brandhorst Newsletter (Sci-Fi author)
-
byteSizeGo
Golang Weekly
+
Applied Go Weekly Newsletter
+
The Valuable Dev
+
Changelog News
+
Register Spill
The Imperfectionist
+
Monospace Mentor
+
byteSizeGo
+
The Pragmatic Engineer
+
VK Newsletter
Magazines I like(d)
This is a mix of tech I like(d). I may not be a current subscriber, but now and then, I buy an issue. In random order:
-Next, I created a simple script (~/bin/wol-f3s) to wake the machines:
+Next, I created a simple script (~/bin/wol-f3s) to wake and shutdown the machines:
#!/bin/bash
-# Wake-on-LAN script for f3s cluster (f0, f1, f2)
+# Wake-on-LAN and shutdown script for f3s cluster (f0, f1, f2)# 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"
@@ -395,7 +404,18 @@ wake() {
wol -i "$BROADCAST" "$mac"
}
-case "${1:-all}" in
+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" ;;
@@ -404,8 +424,16 @@ wake() {
wake "f1" "$F1_MAC"
wake "f2" "$F2_MAC"
;;
+ shutdown|poweroff|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]"
+ echo "Usage: $0 [f0|f1|f2|all|shutdown]"
exit 1
;;
esac
@@ -414,27 +442,34 @@ echo ""
echo "✓ WoL packets sent. Machines should boot in a few seconds."
-After making the script executable with chmod +x ~/bin/wol-f3s, I can now wake the machines with simple commands:
+After making the script executable with chmod +x ~/bin/wol-f3s, I can now control the machines with simple commands:
-
[paul@earth]~% wol-f3s # Wake all three
-[paul@earth]~% wol-f3s f0 # Wake only f0
+
[paul@earth]~% wol-f3s # Wake all three
+[paul@earth]~% wol-f3s f0 # Wake only f0
+[paul@earth]~% wol-f3s shutdown # Shutdown all three via SSH
-
Testing WoL
+
Testing WoL and Shutdown
-To test the setup, I shutdown all three machines:
+To test the setup, I shutdown all three machines using the script's shutdown function:
[paul@earth]~% wol-f3s shutdown
+Shutting down f0 (192.168.1.130)...
+ ✓ Shutdown command sent to f0
+Shutting down f1 (192.168.1.131)...
+ ✓ Shutdown command sent to f1
+Shutting down f2 (192.168.1.132)...
+ ✓ Shutdown command sent to f2
+
+✓ Shutdown commands sent to all machines.
After waiting for them to fully power down (about 1 minute), I sent the WoL magic packets:
@@ -462,6 +497,21 @@ Waking up e8:ff:1e:d7:1c:a0...
This makes WoL very convenient - I can wake the cluster from anywhere in my home, whether I'm on WiFi or ethernet.
+
Remote Shutdown via SSH
+
+While Wake-on-LAN handles powering on the machines remotely, I also added a shutdown function to the script for convenience. The wol-f3s shutdown command uses SSH to connect to each machine and execute doas poweroff, gracefully shutting them all down.
+
+This is particularly useful for power saving - when I'm done working with the cluster for the day, I can simply run:
+
+
+
[paul@earth]~% wol-f3s shutdown
+
+
+And all three machines will shut down cleanly. The next time I need them, a simple wol-f3s command wakes them all back up. This combination makes the cluster very energy-efficient while maintaining quick access when needed.
+
BIOS Configuration
For WoL to work reliably, make sure to check the BIOS settings on each Beelink:
diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml
index da1b65c7..d9eda66d 100644
--- a/gemfeed/atom.xml
+++ b/gemfeed/atom.xml
@@ -1,6 +1,6 @@
- 2026-01-11T10:37:38+02:00
+ 2026-01-11T10:46:34+02:00foo.zone feedTo be in the .zone!
@@ -13637,8 +13637,9 @@ Jan 26 17:36:32 f2 apcupsd[2159]: apcupsd shutdown succeeded
-Next, I created a simple script (~/bin/wol-f3s) to wake the machines:
+Next, I created a simple script (~/bin/wol-f3s) to wake and shutdown the machines:
#!/bin/bash
-# Wake-on-LAN script for f3s cluster (f0, f1, f2)
+# Wake-on-LAN and shutdown script for f3s cluster (f0, f1, f2)# 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"
@@ -13973,7 +13982,18 @@ wake() {
wol -i "$BROADCAST" "$mac"
}
-case "${1:-all}" in
+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" ;;
@@ -13982,8 +14002,16 @@ wake() {
wake "f1" "$F1_MAC"
wake "f2" "$F2_MAC"
;;
+ shutdown|poweroff|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]"
+ echo "Usage: $0 [f0|f1|f2|all|shutdown]"
exit 1
;;
esac
@@ -13992,27 +14020,34 @@ echo ""
echo "✓ WoL packets sent. Machines should boot in a few seconds."
-After making the script executable with chmod +x ~/bin/wol-f3s, I can now wake the machines with simple commands:
+After making the script executable with chmod +x ~/bin/wol-f3s, I can now control the machines with simple commands:
-
[paul@earth]~% wol-f3s # Wake all three
-[paul@earth]~% wol-f3s f0 # Wake only f0
+
[paul@earth]~% wol-f3s # Wake all three
+[paul@earth]~% wol-f3s f0 # Wake only f0
+[paul@earth]~% wol-f3s shutdown # Shutdown all three via SSH
-
Testing WoL
+
Testing WoL and Shutdown
-To test the setup, I shutdown all three machines:
+To test the setup, I shutdown all three machines using the script's shutdown function:
[paul@earth]~% wol-f3s shutdown
+Shutting down f0 (192.168.1.130)...
+ ✓ Shutdown command sent to f0
+Shutting down f1 (192.168.1.131)...
+ ✓ Shutdown command sent to f1
+Shutting down f2 (192.168.1.132)...
+ ✓ Shutdown command sent to f2
+
+✓ Shutdown commands sent to all machines.
After waiting for them to fully power down (about 1 minute), I sent the WoL magic packets:
@@ -14040,6 +14075,21 @@ Waking up e8:ff:1e:d7:1c:a0...
This makes WoL very convenient - I can wake the cluster from anywhere in my home, whether I'm on WiFi or ethernet.
+
Remote Shutdown via SSH
+
+While Wake-on-LAN handles powering on the machines remotely, I also added a shutdown function to the script for convenience. The wol-f3s shutdown command uses SSH to connect to each machine and execute doas poweroff, gracefully shutting them all down.
+
+This is particularly useful for power saving - when I'm done working with the cluster for the day, I can simply run:
+
+
+
[paul@earth]~% wol-f3s shutdown
+
+
+And all three machines will shut down cleanly. The next time I need them, a simple wol-f3s command wakes them all back up. This combination makes the cluster very energy-efficient while maintaining quick access when needed.
+
BIOS Configuration
For WoL to work reliably, make sure to check the BIOS settings on each Beelink:
diff --git a/index.html b/index.html
index 7cc74f4c..1b0f84ef 100644
--- a/index.html
+++ b/index.html
@@ -13,7 +13,7 @@
Hello!
-This site was generated at 2026-01-11T10:37:38+02:00 by Gemtexter
+This site was generated at 2026-01-11T10:46:34+02:00 by Gemtexter
-This site was last updated at 2026-01-11T10:37:38+02:00
+This site was last updated at 2026-01-11T10:46:34+02:00
The following stats were collected via uptimed on all of my personal computers over many years and the output was generated by guprecords, the global uptime records stats analyser of mine.