McGarrah Technical Blog

Essential CLI Tools for Linux System Management

4 min read

After years of managing Linux systems - from my Dell Wyse 3040 Proxmox cluster to various VMs and containers - I’ve accumulated a collection of command-line tools that I reach for constantly. These aren’t exotic utilities, but rather the practical tools that help me figure out what’s actually happening when systems misbehave.

Most of these came from those “why is this server slow?” moments where you need to quickly diagnose CPU, memory, storage, or network issues. Here’s what I actually use and why.

Jekyll Website Optimization for GitHub Pages - Part 1

23 min read

After running this Jekyll-based website for a couple years (since July of 2023), I’ve learned valuable lessons about optimizing Jekyll sites for GitHub Pages. This blog initially started as a consolidation of several blog websites I’d published over the years. This is Part 1 of a two-part series covering the foundational optimizations that have made the biggest difference for my homelab blog.

Generate Git Timesheet from Commit Logs

10 min read

Generate Git Timesheet from Commit Logs

I hate time tracking. Seriously. Most time tracking tools require you to remember to start timers, categorize work, and generally interrupt your flow to feed some system that’s probably going to be wrong anyway. But when you’re freelancing or need to report hours on projects, you’re stuck with it.

So I built a Python tool that generates timesheets from git commit history - because your commits are already there, they’re timestamped, and they actually reflect when you were working on stuff.

Enabling SMART Monitoring on Seagate USB Drives

4 min read

USB drives are notorious for hiding their SMART data behind finicky USB-to-SATA bridges. If you’ve ever tried to check the health of a Seagate USB drive and gotten frustrated with “unsupported field in scsi command” errors, you’re not alone.

After wrestling with several Seagate drives in my homelab, I finally figured out the magic incantations needed to get SMART data working. Here’s how to do it properly.

Note: The decision to not allow this in Linux as a default was done for a good reasons. You are playing with fire as some drives behave erratically. I have not experienced this with recently purchased USB Drives, but older ones did have quirks and issues. So buyer beware.

Posts