From d49046aed531bc9a4bd1055e6c0f67cd30d97a75 Mon Sep 17 00:00:00 2001
From: Paul Buetow
Date: Mon, 28 Jul 2025 15:10:43 +0300
Subject: Update content for html
---
about/resources.html | 194 ++++++++++-----------
...5-07-14-f3s-kubernetes-with-freebsd-part-6.html | 72 ++++----
gemfeed/atom.xml | 74 ++++----
index.html | 2 +-
uptime-stats.html | 2 +-
5 files changed, 182 insertions(+), 162 deletions(-)
diff --git a/about/resources.html b/about/resources.html
index ee592f57..45b3fb17 100644
--- a/about/resources.html
+++ b/about/resources.html
@@ -50,107 +50,107 @@
In random order:
-
Polished Ruby Programming; Jeremy Evans; Packt Publishing
+
Java ist auch eine Insel; Christian Ullenboom;
The KCNA (Kubernetes and Cloud Native Associate) Book; Nigel Poulton
-
The Docker Book; James Turnbull; Kindle
-
Raku Recipes; J.J. Merelo; Apress
+
Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
+
Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
+
Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
+
Effective Java; Joshua Bloch; Addison-Wesley Professional
+
100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
+
DNS and BIND; Cricket Liu; O'Reilly
+
DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
+
Modern Perl; Chromatic ; Onyx Neon Press
+
Site Reliability Engineering; How Google runs production systems; O'Reilly
+
Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
+
21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
+
Raku Fundamentals; Moritz Lenz; Apress
+
Effective awk programming; Arnold Robbins; O'Reilly
+
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
The DevOps Handbook; Gene Kim, Jez Humble, Patrick Debois, John Willis; Audible
-
Higher Order Perl; Mark Dominus; Morgan Kaufmann
+
Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
Think Raku (aka Think Perl 6); Laurent Rosenfeld, Allen B. Downey; O'Reilly
-
The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
-
Effective awk programming; Arnold Robbins; O'Reilly
Perl New Features; Joshua McAdams, brian d foy; Perl School
-
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
+
Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
+
Leanring eBPF; Liz Rice; O'Reilly
+
Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
+
97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
+
The Pragmatic Programmer; David Thomas; Addison-Wesley
+
Polished Ruby Programming; Jeremy Evans; Packt Publishing
+
Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
+
Terraform Cookbook; Mikael Krief; Packt Publishing
+
Concurrency in Go; Katherine Cox-Buday; O'Reilly
+
Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
Learn You a Haskell for Great Good!; Miran Lipovaca; No Starch Press
-
DevOps And Site Reliability Engineering Handbook; Stephen Fleming; Audible
-
Programming Ruby 3.3 (5th Edition); Noel Rappin, with Dave Thomas; The Pragmatic Bookshelf
+
Developing Games in Java; David Brackeen and others...; New Riders
Distributed Systems: Principles and Paradigms; Andrew S. Tanenbaum; Pearson
-
97 things every SRE should know; Emil Stolarsky, Jaime Woo; O'Reilly
-
Go Brain Teasers - Exercise Your Mind; Miki Tebeka; The Pragmatic Programmers
-
Tmux 2: Productive Mouse-free Development; Brain P. Hogan; The Pragmatic Programmers
-
Systemprogrammierung in Go; Frank Müller; dpunkt
-
Learn You Some Erlang for Great Good; Fred Herbert; No Starch Press
C++ Programming Language; Bjarne Stroustrup;
-
Funktionale Programmierung; Peter Pepper; Springer
-
Leanring eBPF; Liz Rice; O'Reilly
-
Object-Oriented Programming with ANSI-C; Axel-Tobias Schreiner
-
Raku Fundamentals; Moritz Lenz; Apress
-
Clusterbau mit Linux-HA; Michael Schwartzkopff; O'Reilly
-
The Pragmatic Programmer; David Thomas; Addison-Wesley
+
The Docker Book; James Turnbull; Kindle
+
Systemprogrammierung in Go; Frank Müller; dpunkt
Ultimate Go Notebook; Bill Kennedy
-
Concurrency in Go; Katherine Cox-Buday; O'Reilly
-
Effective Java; Joshua Bloch; Addison-Wesley Professional
-
21st Century C: C Tips from the New School; Ben Klemens; O'Reilly
-
Pro Puppet; James Turnbull, Jeffrey McCune; Apress
The Go Programming Language; Alan A. A. Donovan; Addison-Wesley Professional
-
Amazon Web Services in Action; Michael Wittig and Andreas Wittig; Manning Publications
-
100 Go Mistakes and How to Avoid Them; Teiva Harsanyi; Manning Publications
-
Java ist auch eine Insel; Christian Ullenboom;
-
Site Reliability Engineering; How Google runs production systems; O'Reilly
-
DNS and BIND; Cricket Liu; O'Reilly
-
Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
-
Modern Perl; Chromatic ; Onyx Neon Press
-
Developing Games in Java; David Brackeen and others...; New Riders
-
Programming Perl aka "The Camel Book"; Tom Christiansen, brian d foy, Larry Wall & Jon Orwant; O'Reilly
-
Hands-on Infrastructure Monitoring with Prometheus; Joel Bastos, Pedro Araujo; Packt
-
Terraform Cookbook; Mikael Krief; Packt Publishing
+
Higher Order Perl; Mark Dominus; Morgan Kaufmann
+
Funktionale Programmierung; Peter Pepper; Springer
+
Raku Recipes; J.J. Merelo; Apress
Data Science at the Command Line; Jeroen Janssens; O'Reilly
+
The Kubernetes Book; Nigel Poulton; Unabridged Audiobook
Kubernetes Cookbook; Sameer Naik, Sébastien Goasguen, Jonathan Michaux; O'Reilly
+
Systems Performance Tuning; Gian-Paolo D. Musumeci and others...; O'Reilly
+
Pro Puppet; James Turnbull, Jeffrey McCune; Apress
Technical references
I didn't read them from the beginning to the end, but I am using them to look up things. The books are in random order:
-
Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
-
Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
Implementing Service Level Objectives; Alex Hidalgo; O'Reilly
-
BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
+
Understanding the Linux Kernel; Daniel P. Bovet, Marco Cesati; O'Reilly
+
Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
Relayd and Httpd Mastery; Michael W Lucas
Go: Design Patterns for Real-World Projects; Mat Ryer; Packt
+
Algorithms; Robert Sedgewick, Kevin Wayne; Addison Wesley
The Linux Programming Interface; Michael Kerrisk; No Starch Press
-
Groovy Kurz & Gut; Joerg Staudemeier; O'Reilly
+
BPF Performance Tools - Linux System and Application Observability, Brendan Gregg; Addison Wesley
Self-development and soft-skills books
In random order:
+
The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
+
So Good They Can't Ignore You; Cal Newport; Business Plus
+
Getting Things Done; David Allen
The Joy of Missing Out; Christina Crook; New Society Publishers
-
The Good Enough Job; Simone Stolzoff; Ebury Edge
-
The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
-
Slow Productivity; Cal Newport; Penguin Random House
-
Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
-
Stop starting, start finishing; Arne Roock; Lean-Kanban University
-
Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
-
The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd
-
Eat That Frog; Brian Tracy
-
Ultralearning; Scott Young; Thorsons
-
Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
-
The Power of Now; Eckhard Tolle; Yellow Kite
-
Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
-
Deep Work; Cal Newport; Piatkus
+
Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
The Off Switch; Mark Cropley; Virgin Books (RE-READ 1ST TIME)
-
Psycho-Cybernetics; Maxwell Maltz; Perigee Books
-
101 Essays that change the way you think; Brianna Wiest; Audiobook
-
The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
Soft Skills; John Sommez; Manning Publications
-
So Good They Can't Ignore You; Cal Newport; Business Plus
-
The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
-
The Phoenix Project - A Novel About IT, DevOps, and Helping your Business Win; Gene Kim and Kevin Behr; Trade Select
-
Staff Engineer: Leadership beyond the management track; Will Larson; Audiobook
-
Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
+
Deep Work; Cal Newport; Piatkus
+
The Bullet Journal Method; Ryder Carroll; Fourth Estate
+
Atomic Habits; James Clear; Random House Business
+
The Complete Software Developer's Career Guide; John Sonmez; Unabridged Audiobook
+
Ultralearning; Scott Young; Thorsons
+
Ultralearning; Anna Laurent; Self-published via Amazon
+
Meditation for Mortals, Oliver Burkeman, Audiobook
+
Slow Productivity; Cal Newport; Penguin Random House
Coders at Work - Reflections on the craft of programming, Peter Seibel and Mitchell Dorian et al., Audiobook
-
Influence without Authority; A. Cohen, D. Bradford; Wiley
Time Management for System Administrators; Thomas A. Limoncelli; O'Reilly
-
Getting Things Done; David Allen
-
Eat That Frog!; Brian Tracy; Hodder Paperbacks
+
Consciousness: A Very Short Introduction; Susan Blackmore; Oxford Uiversity Press
+
Never Split the Difference; Chris Voss, Tahl Raz; Random House Business
+
The Obstacle Is The Way; Ryan Holiday; Profile Books Ltd
+
The 7 Habits Of Highly Effective People; Stephen R. Covey; Simon & Schuster UK
+
Stop starting, start finishing; Arne Roock; Lean-Kanban University
+
The Power of Now; Eckhard Tolle; Yellow Kite
+
Who Moved My Cheese?; Dr. Spencer Johnson; Vermilion
+
Eat That Frog; Brian Tracy
Digital Minimalism; Cal Newport; Portofolio Penguin
-
Ultralearning; Anna Laurent; Self-published via Amazon
+
Eat That Frog!; Brian Tracy; Hodder Paperbacks
+
Solve for Happy; Mo Gawdat (RE-READ 1ST TIME)
+
Influence without Authority; A. Cohen, D. Bradford; Wiley
Search Inside Yourself - The Unexpected path to Achieving Success, Happiness (and World Peace); Chade-Meng Tan, Daniel Goleman, Jon Kabat-Zinn; HarperOne
-
Atomic Habits; James Clear; Random House Business
-
Meditation for Mortals, Oliver Burkeman, Audiobook
-
The Bullet Journal Method; Ryder Carroll; Fourth Estate
+
Buddah and Einstein walk into a Bar; Guy Joseph Ale, Claire Bloom; Blackstone Publishing
+
Psycho-Cybernetics; Maxwell Maltz; Perigee Books
+
The Daily Stoic; Ryan Holiday, Stephen Hanselman; Profile Books
+
The Good Enough Job; Simone Stolzoff; Ebury Edge
+
101 Essays that change the way you think; Brianna Wiest; Audiobook
@@ -159,22 +159,22 @@
Some of these were in-person with exams; others were online learning lectures only. In random order:
+
Structure and Interpretation of Computer Programs; Harold Abelson and more...;
+
Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
The Ultimate Kubernetes Bootcamp; School of Devops; O'Reilly Online
-
MySQL Deep Dive Workshop; 2-day on-site training
+
The Well-Grounded Rubyist Video Edition; David. A. Black; O'Reilly Online
+
Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
+
Protocol buffers; O'Reilly Online
+
Functional programming lecture; Remote University of Hagen
Ultimate Go Programming; Bill Kennedy; O'Reilly Online
Apache Tomcat Best Practises; 3-day on-site training
-
Functional programming lecture; Remote University of Hagen
+
MySQL Deep Dive Workshop; 2-day on-site training
+
Developing IaC with Terraform (with Live Lessons); 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
Scripting Vim; Damian Conway; O'Reilly Online
-
AWS Immersion Day; Amazon; 1-day interactive online training
-
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)
-
Structure and Interpretation of Computer Programs; Harold Abelson and more...;
F5 Loadbalancers Training; 2-day on-site training; F5, Inc.
-
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
-
Algorithms Video Lectures; Robert Sedgewick; O'Reilly Online
-
Protocol buffers; O'Reilly Online
-
Linux Security and Isolation APIs Training; Michael Kerrisk; 3-day on-site training
-
Developing IaC with Terraform (with Live Lessons); 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)
+
AWS Immersion Day; Amazon; 1-day interactive online training
Technical guides
@@ -182,8 +182,8 @@
How CPUs work at https://cpu.land
-
Raku Guide at https://raku.guide
Advanced Bash-Scripting Guide
+
Raku Guide at https://raku.guide
Podcasts
@@ -192,32 +192,32 @@
In random order:
+
Dev Interrupted
BSD Now [BSD]
The Pragmatic Engineer Podcast
-
Cup o' Go [Golang]
-
Dev Interrupted
-
Fallthrough [Golang]
Maintainable
-
Deep Questions with Cal Newport
+
The Changelog Podcast(s)
Modern Mentor
Backend Banter
-
Fork Around And Find Out
+
Cup o' Go [Golang]
+
Deep Questions with Cal Newport
Pratical AI
Hidden Brain
+
Fallthrough [Golang]
The ProdCast (Google SRE Podcast)
-
The Changelog Podcast(s)
+
Fork Around And Find Out
Podcasts I liked
I liked them but am not listening to them anymore. The podcasts have either "finished" (no more episodes) or I stopped listening to them due to time constraints or a shift in my interests.
-
CRE: Chaosradio Express [german]
Go Time (predecessor of fallthrough)
-
Ship It (predecessor of Fork Around And Find Out)
Java Pub House
-
Modern Mentor
+
CRE: Chaosradio Express [german]
+
Ship It (predecessor of Fork Around And Find Out)
FLOSS weekly
+
Modern Mentor
Newsletters I like
@@ -226,25 +226,25 @@
Golang Weekly
Ruby Weekly
-
Andreas Brandhorst Newsletter (Sci-Fi author)
-
Monospace Mentor
+
The Valuable Dev
Changelog News
-
The Imperfectionist
+
Register Spill
+
byteSizeGo
+
Andreas Brandhorst Newsletter (Sci-Fi author)
Applied Go Weekly Newsletter
-
The Pragmatic Engineer
-
The Valuable Dev
+
The Imperfectionist
VK Newsletter
-
byteSizeGo
-
Register Spill
+
Monospace Mentor
+
The Pragmatic Engineer
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:
-
LWN (online only)
-
Linux User
Linux Magazine
+
Linux User
+
LWN (online only)
freeX (not published anymore)
Formal education
diff --git a/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.html b/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.html
index 85d007e8..b58eb813 100644
--- a/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.html
+++ b/gemfeed/2025-07-14-f3s-kubernetes-with-freebsd-part-6.html
@@ -1602,7 +1602,6 @@ http://www.gnu.org/software/src-highlite -->
MOUNT_POINT="/data/nfs/k3svolumes"
LOCK_FILE="/var/run/nfs-mount-check.lock"
-STATE_FILE="/var/run/nfs-mount.state"
# Use a lock file to prevent concurrent runsif [ -f "$LOCK_FILE" ]; then
@@ -1611,46 +1610,57 @@ STATE_FILE="/var/run/nfs-mount.state"
touch "$LOCK_FILE"
trap "rm -f $LOCK_FILE" EXIT
-remount_it () {
- # Try to fix
- echo "Attempting to fix/remount NFS mount at $(date)" | systemd-cat -t nfs-monitor -p notice
- umount -f "$MOUNT_POINT" 2>/dev/null
- sleep 1
+fix_mount () {
+ echo "Attempting to remount NFS mount $MOUNT_POINT"
+ if mount -o remount -f "$MOUNT_POINT" 2>/dev/null; then
+ echo "Remount command issued for $MOUNT_POINT"
+ else
+ echo "Failed to remount NFS mount $MOUNT_POINT"
+ fi
- if mount "$MOUNT_POINT"; then
- echo "NFS mount fixed at $(date)" | systemd-cat -t nfs-monitor -p info
- rm -f "$STATE_FILE"
+ echo "Checking if $MOUNT_POINT is a mountpoint"
+ if mountpoint "$MOUNT_POINT" >/dev/null 2>&1; then
+ echo "$MOUNT_POINT is a valid mountpoint"
else
- echo "Failed to fix NFS mount at $(date)" | systemd-cat -t nfs-monitor -p err
+ echo "$MOUNT_POINT is not a valid mountpoint, attempting mount"
+ if mount "$MOUNT_POINT"; then
+ echo "Successfully mounted $MOUNT_POINT"
+ return
+ else
+ echo "Failed to mount $MOUNT_POINT"
+ fifi
-}
-# Quick check - ensure it's actually mounted
-if ! mountpoint -q "$MOUNT_POINT"; then
- echo "NFS mount not found at $(date)" | systemd-cat -t nfs-monitor -p err
- remount_it
-fi
+ echo "Attempting to unmount $MOUNT_POINT"
+ if umount -f "$MOUNT_POINT" 2>/dev/null; then
+ echo "Successfully unmounted $MOUNT_POINT"
+ else
+ echo "Failed to unmount $MOUNT_POINT (it might not be mounted)"
+ fi
-# Quick check - try to stat a directory with a very short timeout
-if timeout 2s stat "$MOUNT_POINT" >/dev/null 2>&1; then
- # Mount appears healthy
- if [ -f "$STATE_FILE" ]; then
- # Was previously unhealthy, log recovery
- echo "NFS mount recovered at $(date)" | systemd-cat -t nfs-monitor -p info
- rm -f "$STATE_FILE"
+ echo "Attempting to mount $MOUNT_POINT"
+ if mount "$MOUNT_POINT"; then
+ echo "NFS mount $MOUNT_POINT mounted successfully"
+ return
+ else
+ echo "Failed to mount NFS mount $MOUNT_POINT"
fi
- exit 0
-fi
-# Mount is unhealthy
-if [ ! -f "$STATE_FILE" ]; then
- # First detection of unhealthy state
- echo "NFS mount unhealthy detected at $(date)" | systemd-cat -t nfs-monitor -p warning
- touch "$STATE_FILE"
+ echo "Failed to fix NFS mount $MOUNT_POINT"
+ exit 1
+}
+
+if ! mountpoint "$MOUNT_POINT" >/dev/null 2>&1; then
+ echo "NFS mount $MOUNT_POINT not found"
+ fix_mount
fi
-remount_it
+if ! timeout 2s stat "$MOUNT_POINT" >/dev/null 2>&1; then
+ echo "NFS mount $MOUNT_POINT appears to be unresponsive"
+ fix_mount
+fi
EOF
+
[root@r0 ~]# chmod +x /usr/local/bin/check-nfs-mount.sh
diff --git a/gemfeed/atom.xml b/gemfeed/atom.xml
index dc1c83bb..86fbc6ea 100644
--- a/gemfeed/atom.xml
+++ b/gemfeed/atom.xml
@@ -1,6 +1,6 @@
- 2025-07-28T14:27:18+03:00
+ 2025-07-28T15:09:21+03:00foo.zone feedTo be in the .zone!
@@ -1609,7 +1609,6 @@ http://www.gnu.org/software/src-highlite -->
MOUNT_POINT="/data/nfs/k3svolumes"
LOCK_FILE="/var/run/nfs-mount-check.lock"
-STATE_FILE="/var/run/nfs-mount.state"
# Use a lock file to prevent concurrent runsif [ -f "$LOCK_FILE" ]; then
@@ -1618,46 +1617,57 @@ STATE_FILE="/var/run/nfs-mount.state"
touch "$LOCK_FILE"
trap "rm -f $LOCK_FILE" EXIT
-remount_it () {
- # Try to fix
- echo "Attempting to fix/remount NFS mount at $(date)" | systemd-cat -t nfs-monitor -p notice
- umount -f "$MOUNT_POINT" 2>/dev/null
- sleep 1
+fix_mount () {
+ echo "Attempting to remount NFS mount $MOUNT_POINT"
+ if mount -o remount -f "$MOUNT_POINT" 2>/dev/null; then
+ echo "Remount command issued for $MOUNT_POINT"
+ else
+ echo "Failed to remount NFS mount $MOUNT_POINT"
+ fi
- if mount "$MOUNT_POINT"; then
- echo "NFS mount fixed at $(date)" | systemd-cat -t nfs-monitor -p info
- rm -f "$STATE_FILE"
+ echo "Checking if $MOUNT_POINT is a mountpoint"
+ if mountpoint "$MOUNT_POINT" >/dev/null 2>&1; then
+ echo "$MOUNT_POINT is a valid mountpoint"
else
- echo "Failed to fix NFS mount at $(date)" | systemd-cat -t nfs-monitor -p err
+ echo "$MOUNT_POINT is not a valid mountpoint, attempting mount"
+ if mount "$MOUNT_POINT"; then
+ echo "Successfully mounted $MOUNT_POINT"
+ return
+ else
+ echo "Failed to mount $MOUNT_POINT"
+ fifi
-}
-# Quick check - ensure it's actually mounted
-if ! mountpoint -q "$MOUNT_POINT"; then
- echo "NFS mount not found at $(date)" | systemd-cat -t nfs-monitor -p err
- remount_it
-fi
+ echo "Attempting to unmount $MOUNT_POINT"
+ if umount -f "$MOUNT_POINT" 2>/dev/null; then
+ echo "Successfully unmounted $MOUNT_POINT"
+ else
+ echo "Failed to unmount $MOUNT_POINT (it might not be mounted)"
+ fi
-# Quick check - try to stat a directory with a very short timeout
-if timeout 2s stat "$MOUNT_POINT" >/dev/null 2>&1; then
- # Mount appears healthy
- if [ -f "$STATE_FILE" ]; then
- # Was previously unhealthy, log recovery
- echo "NFS mount recovered at $(date)" | systemd-cat -t nfs-monitor -p info
- rm -f "$STATE_FILE"
+ echo "Attempting to mount $MOUNT_POINT"
+ if mount "$MOUNT_POINT"; then
+ echo "NFS mount $MOUNT_POINT mounted successfully"
+ return
+ else
+ echo "Failed to mount NFS mount $MOUNT_POINT"
fi
- exit 0
-fi
-# Mount is unhealthy
-if [ ! -f "$STATE_FILE" ]; then
- # First detection of unhealthy state
- echo "NFS mount unhealthy detected at $(date)" | systemd-cat -t nfs-monitor -p warning
- touch "$STATE_FILE"
+ echo "Failed to fix NFS mount $MOUNT_POINT"
+ exit 1
+}
+
+if ! mountpoint "$MOUNT_POINT" >/dev/null 2>&1; then
+ echo "NFS mount $MOUNT_POINT not found"
+ fix_mount
fi
-remount_it
+if ! timeout 2s stat "$MOUNT_POINT" >/dev/null 2>&1; then
+ echo "NFS mount $MOUNT_POINT appears to be unresponsive"
+ fix_mount
+fi
EOF
+
[root@r0 ~]# chmod +x /usr/local/bin/check-nfs-mount.sh
diff --git a/index.html b/index.html
index d564f950..a8c48bce 100644
--- a/index.html
+++ b/index.html
@@ -13,7 +13,7 @@
Hello!
-This site was generated at 2025-07-28T14:27:18+03:00 by Gemtexter
+This site was generated at 2025-07-28T15:09:21+03:00 by Gemtexter
-This site was last updated at 2025-07-28T14:27:18+03:00
+This site was last updated at 2025-07-28T15:09:21+03: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.