Server Monitoring · 2026
Linux Monitoring System
Bash-only Linux server monitoring + maintenance suite. Real-time TUI dashboard, threshold alerts, auto-heal failed services, scheduled patching, and log rotation - zero external runtime deps.
- Bash
- Linux
- systemd
- cron
- ▸ Lab
The problem
Every Linux server needs the same boring layer: something that watches CPU + memory + disk, restarts services when they die, rotates logs before they fill the disk, and applies security patches without breaking userspace. Most teams reach for a SaaS agent (Datadog / New Relic) for this. On a personal homelab box, that's overkill - and on an air-gapped box, it's impossible.
The goal: a lightweight monitoring + maintenance suite that runs on any modern systemd-based Linux distro with zero external runtime dependencies beyond standard system utilities. Pure Bash. Drop the files in, run one cron-installer script, walk away.
What's in the suite
monitor.sh- interactive real-time dashboard. CPU, memory, disk, load average. Refreshes on an interval, drawn with raw terminal cursor controls.alerts.sh- threshold checker. Reads fromconfig.cfg, fires email viamail(1)when thresholds are breached.self_heal.sh- service monitor + auto-restarter. Detects failed critical services (configurable list), restarts with retry logic, escalates after N failures.report.sh- daily system health report. Optional email delivery, optional gzip compression for archives.log_rotation.sh- age + size-based log pruning, compression, archive cleanup.maintenance.sh- weeklyapt/dnf/yum/pacmanpackage updates + temp-file cleanup.security_update.sh- security-only patching, package-manager aware.setup_cron.sh- one-shot cron installer. Wires every script above into the right cron slot.
Why it works
The whole suite is glue around standard utilities (free, df, top,
mpstat, systemctl, mail, gzip). No daemons, no agents, no
binary blobs. Reads config from a single config.cfg file. Every
script is independently runnable - if one breaks, the rest keep
working.
The cron installer means you set it up once and forget. Within an hour every machine in the homelab has the same monitoring posture.