Copyright ยฉ 2026 William Hutton Licensed under the GNU General Public License v3.0 (GPLv3).
This repository contains custom Bash scripts designed to optimize, monitor, and maintain Fedora workstationsโtailored specifically for maximum performance, lower resource usage, and faster boot times.
scripts/: Core performance, maintenance, diagnostics, and optimization utilities.setup/: Automation installers for scheduling tasks.- Root: Documentation (
README.md,AUTOMATION_GUIDE.md) and project licensing.
- Location:
scripts/optimize-boot.sh - Description: Disables heavy graphical boot splash screens (
plymouth) to stream raw text logs, and slashes the artificial GRUB countdown timer down to a hidden 1-second safety window. - How to use:
sudo ./scripts/optimize-boot.sh
- Location:
scripts/Wi-Fi-Buffer-Fix.sh - Description: Tweaks network buffer sizes and wireless power management states to eliminate latency spikes and drop-outs.
- How to use:
sudo ./scripts/Wi-Fi-Buffer-Fix.sh
- Location:
scripts/ram-manager.sh - Description: Audits memory hogs, flushes inactive page caches safely, and optimizes memory allocation policies for low-RAM hardware.
- How to use:
./scripts/ram-manager.sh
- Location:
scripts/auto-maintenance.sh - Description: Runs a predefined maintenance sequence for backup, cleanup, updates, and memory optimization in a single workflow.
- How to use:
./scripts/auto-maintenance.sh ./scripts/auto-maintenance.sh --dry-run
- Location:
scripts/disk-cleanup.sh - Features: Cleans
/tmp, purges DNF/package manager caches, deletes logs older than 30 days, and empties trash. Includes a safe--dry-runpreview mode. - How to use:
sudo ./scripts/disk-cleanup.sh sudo ./scripts/disk-cleanup.sh --dry-run
- Location:
scripts/backup-manager.sh - Features: Automated, timestamped configuration and documents backups, restoration pipelines, and auto-purging of archives older than 30 days.
- How to use:
./scripts/backup-manager.sh create --name "before-update" ./scripts/backup-manager.sh restore --backup-id YYYYMMDD-HHMMSS
- Location:
scripts/update-system.sh - Description: One-touch script to handle DNF repository updates, package upgrades, and residual package removals.
- How to use:
sudo ./scripts/update-system.sh
- Location:
scripts/performance-tuner.sh - Features: Adjusts CPU governors (schedutil/ondemand), manages system swappiness settings, scales I/O schedulers, and generates performance diagnostic logs.
- How to use:
./scripts/performance-tuner.sh --optimize ./scripts/performance-tuner.sh --swap 10
- Location:
scripts/battery-monitor.sh - Features: Analyzes power consumption, hardware degradation metrics, charge cycles, and scales battery-saving profiles.
- How to use:
./scripts/battery-monitor.sh --health ./scripts/battery-monitor.sh --watch
- Location:
scripts/bandwidth-monitor.sh - Description: Real-time network bandwidth monitoring and per-process analysis.
- How to use:
./scripts/bandwidth-monitor.sh --summary ./scripts/bandwidth-monitor.sh --top-processes ./scripts/bandwidth-monitor.sh --history
- Location:
scripts/process-monitor.sh - Description: Displays the most resource-heavy processes, supports live monitoring, searches for a process by name, and can generate a report file.
- How to use:
./scripts/process-monitor.sh ./scripts/process-monitor.sh --cpu 15 ./scripts/process-monitor.sh --memory 10 ./scripts/process-monitor.sh --watch 3 ./scripts/process-monitor.sh --find firefox ./scripts/process-monitor.sh --report "$HOME/process-report.txt"
- Location:
scripts/firewall-manager.sh - Description: Manages the Fedora
firewalldservice, lists active rules, allows ports/services, and toggles firewall state. - How to use:
./scripts/firewall-manager.sh status ./scripts/firewall-manager.sh list ./scripts/firewall-manager.sh allow ssh ./scripts/firewall-manager.sh allow 8080/tcp ./scripts/firewall-manager.sh remove 8080/tcp sudo ./scripts/firewall-manager.sh enable sudo ./scripts/firewall-manager.sh disable
- Location:
scripts/network-health.sh - Description: Performs connectivity and DNS health checks, verifies interfaces, and helps identify common networking issues.
- How to use:
./scripts/network-health.sh
- Location:
scripts/logger.sh - Description: Silently generates execution timestamps, user contexts, and system uptimes into a structured tracking file.
- How to use:
./scripts/logger.sh cat ~/Documents/access_report.txt
- Location:
scripts/security-audit.sh - Description: Performs a broad system security audit covering package state, firewall health, users, permissions, and system hardening basics.
- How to use:
./scripts/security-audit.sh
- Location:
scripts/sys-info.sh - Description: Displays host, kernel, memory, disk, and system summary information.
- How to use:
./scripts/sys-info.sh
You can schedule automated execution of these maintenance routines via interactive scripts included in the setup/ directory.
sudo ./setup/install-systemd-timers.sh
sudo ./setup/install-systemd-timers.sh --status