System Administration Scripts

Systems automation · Ongoing

This is my working toolbox for systems administration. I use it to turn repeated maintenance steps into commands I can review, improve, and run consistently.

The collection spans Bash, PowerShell, and Windows Batch. Some scripts handle one small repair. Others guide a full setup or maintenance routine.

What it handles

The Linux tools cover routine server updates, Docker installation and cleanup, container updates, Pi-hole maintenance, Proxmox guest setup, cloud-init templates, SSH keys, rsync backups, remote desktop setup, disk-space cleanup, and development environments.

Windows and PowerShell tools cover update repair, driver backup and restore, WSL setup and removal, installed-software reports, Wi-Fi information, SSH configuration permissions, Winget upgrades, and post-install tasks.

Battery-reporting scripts use native system data on Windows, Linux, and macOS. They calculate battery health, save dated reports, and keep a history file for tracking capacity loss over time.

The toolbox also includes cross-platform cleanup tools for operating-system junk files and project artifacts. Destructive maintenance scripts live in a clearly marked area so they do not look like routine commands.

Examples from the toolbox

  • a universal Linux updater that detects the distribution and uses its native package manager
  • Proxmox-aware update behavior that avoids automatic host reboots
  • Docker cleanup and Compose container update workflows
  • Pi-hole system and application updates with locking and logs
  • Windows, Linux, and macOS battery-health reports
  • rsync backup routines
  • GitHub SSH key setup
  • Windows Update reset and repair tools
  • WSL installation, backup, and cleanup helpers

How I use it

These scripts support real workstation, server, and homelab work. They save the commands I would otherwise rebuild from memory each time a machine needs maintenance.

I still read a script before running it, especially when it uses administrator access, removes files, changes packages, or downloads another tool. A saved command is easier to audit than a half-remembered command typed under pressure.

The result is a practical operations kit that grows whenever a repeated task deserves a tested process.

Role
Developer and maintainer
Technologies
Bash, PowerShell, Batch, Linux, Windows, macOS, WSL