Servers rarely fail all at once. They drift: disks fill up, certificates near expiry, updates pile up, backups quietly stop. A short, regular routine catches these problems early. Automate what you can, and keep a checklist for the rest.

Automate first (set up once)

Task How
Security updates unattended-upgrades or dnf-automatic
Backups Nightly, encrypted, off-server — backup to cloud storage
Backup monitoring A “dead man’s switch” check that alerts if a backup doesn’t run
Certificate renewal Certbot timer (installed automatically)
Uptime monitoring External HTTP/ping checks with alerts
Log rotation logrotate (default) and a journal size limit
Resource alerts Disk > 80%, RAM, load — Netdata, Prometheus, or a hosted monitor

Limit the systemd journal so it can’t fill the disk:

# /etc/systemd/journald.conf
SystemMaxUse=500M

Daily (automated — just read the alerts)

  • Did backups succeed?
  • Any uptime or resource alerts?
  • Any unusual spike in failed logins (journalctl -u ssh)?

Weekly (10 minutes)

df -h                                  # disk space
free -h                                # memory (look at 'available')
uptime                                 # load
systemctl --failed                     # failed services
journalctl -p err -S -7d | tail -50    # errors this week
fail2ban-client status sshd            # bans
  • Check application logs for new errors.
  • Apply non-security updates if you don’t automate them: apt update && apt upgrade.
  • Reboot if required (/var/run/reboot-required) during a quiet period.

Monthly (30–60 minutes)

  • Test a restore of at least one site or database from the off-site backup.
  • Review users and keys — remove old accounts and SSH keys; check sudo membership.
  • Check listening services and firewall: ss -tulpn, ufw status — anything unexpected?
  • Update applications — CMS, plugins, Docker images (docker compose pull && docker compose up -d).
  • Clean up — old releases, unused Docker images (docker image prune), old backups beyond retention.
  • Review resource trends — is disk growing steadily? Is RAM close to the limit at peak?

Quarterly

  • Full disaster recovery drill on a fresh VPS: install, restore, verify. Time it.
  • OS lifecycle: is your distribution version still supported? Plan upgrades well before end of life.
  • Security review: run lynis audit system, check TLS settings with an online scanner, review SSH hardening.
  • Capacity planning: do you need a larger plan, or can you downsize? Plans can be upgraded by ticket.
  • Documentation: update your notes — what runs on the server, where configs live, how to restore.

Keep a server log

A simple text file (or wiki page) with dated entries — “2026-11-04: upgraded PHP to 8.3, raised pm.max_children to 28” — turns future troubleshooting from guesswork into a quick lookup.

Signs something needs attention now

  • Disk usage growing faster than usual
  • Load average higher than CPU count during normal traffic
  • Swap activity (vmstat si/so) under normal load
  • New errors in logs after an update
  • Backups taking much longer than before

Each of these has a guide: disk performance, server performance, common Debian errors.

Summary

Automate updates, backups, renewals and monitoring; spend ten minutes a week on checks, an hour a month on restores and reviews, and a few hours a quarter on recovery drills and planning. That routine keeps any VPS healthy for years.

  • VPS
  • Maintenance
  • Linux