Skip to content

Loading

← All projects

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 from config.cfg, fires email via mail(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 - weekly apt/dnf/yum/pacman package 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.

Source

github.com/kubeboiii/linux-monitoring-system