KYTHEL

September 14, 2026 · 5 min read

The Server Health Script That Caught Two Dying Drives

A few years back, a Broward County client’s IT team was spending about 10 hours every week logging into servers by hand: checking disk space, opening the backup folder to see if last night’s job ran, skimming event logs. Ten hours of skilled time, every week, doing something a script does in seconds. So I wrote the script.

It ran every hour, checked the boring things, and stayed completely silent unless a threshold was crossed. Two months in, it flagged rising SMART errors on two drives in a RAID array, about two days before they were replaced. The team swapped the drives on their schedule instead of during a data recovery. That script, rewritten clean, is now free and open source on GitHub.

What it checks

The essentials that actually take servers down: disk usage per mount against your thresholds, memory pressure, load average per CPU core, systemd services that must be running, and SMART overall health on your drives when smartmontools is installed.

And the one I care most about: backup freshness. You point it at your backup folder and set a maximum age, say 26 hours. If the newest backup file is older than that, you get an alert today, not the day you need a restore and discover the job quietly died three weeks ago. In my experience taking over small business environments, a stale backup nobody noticed is the single most common serious finding.

Quiet by design

The script only sends a webhook message when a threshold is breached. No daily green checkmarks, no noise. If your alerts channel is full of "everything is fine," you stop reading it, and then you miss the one message that mattered. Healthy infrastructure should be silent.

It works out of the box with Slack and Discord webhooks, prints a clean console report for cron logs, has a dry-run mode, JSON output for automation, and automation-friendly exit codes. It checks remote hosts over plain key-based ssh, so there is nothing to install on the far side.

Zero dependencies, on purpose

It is one Python file using only the standard library. No pip installs, no virtual environments, no supply chain to trust. It runs on the Python that already ships with Debian, Ubuntu, RHEL, or macOS. Read the file before you run it, that is the point of keeping it small.

Like our Hyper-V audit script, it is strictly read-only: it observes and reports, it never changes anything on your machines. Tools should observe; people should decide.

When you outgrow it

Honest limitation: this is a health check, not a monitoring platform. There is no history, no graphs, no paging escalation. When you have twenty servers and an on-call rotation, you want Prometheus and Grafana, and we build those too. But for the three-to-ten-server shops we meet every week, this script is the difference between finding problems and being found by them.

Grab it at github.com/kythel/health-pulse, MIT licensed. And if you would rather never think about disk thresholds at all, that is literally what our managed IT plans are for. Run the numbers yourself on the IT cost calculator.

Want us to watch the boring things for you instead? A free assessment gets you a straight answer and a written flat quote.

Ready when you are

Talk to an engineer today

Free assessment, straight answers, no pressure. Call (561) 608-4554 or send a message and we will get back to you fast.

5.0 rated · 23 reviews on Google