Archive
2026 · 48
- 2026-11-05Out of inodes while the disk is half empty
- 2026-11-02A restart loop hides the error that caused it
- 2026-10-29An incomplete certificate chain that browsers hide
- 2026-10-26Who killed the process: reading the OOM log
- 2026-10-20Container logs filling the disk
- 2026-10-15What to check in the first minute of a 502
- 2026-10-09Eight hours off inside a container
- 2026-10-02Packet capture beats ping for finding slowness
- 2026-09-26Long connections cut by something in the middle
- 2026-09-19Slow DNS is often not DNS
- 2026-09-12Why some clients got slower after enabling HTTP/2
- 2026-09-05Too many open files: find the leak before raising the limit
- 2026-08-29Logs that never rotate: two usual causes
- 2026-08-22Cron runs your script with a different environment
- 2026-08-15When the filesystem goes read-only
- 2026-08-08SSH takes ten seconds to reach a prompt
- 2026-08-03Two surprises after moving from cron to systemd timers
- 2026-07-28Lots of TIME_WAIT: usually not a problem
- 2026-07-21High load, idle CPU
- 2026-07-15Port in use, but no process in sight
- 2026-07-08HSTS is a one-way door
- 2026-07-01An unverified backup is not a backup
- 2026-06-24gzip, brotli, zstd: more compression is not free
- 2026-06-21When NTP is filtered: keeping time roughly right over HTTPS
- 2026-06-17Should a small box use swap
- 2026-06-10Odd failures from an MTU mismatch
- 2026-06-03limits.conf changed, ulimit unchanged
- 2026-05-27Quotes and spaces in EnvironmentFile
- 2026-05-20A full conntrack table drops new connections
- 2026-05-13Who still cannot connect after dropping TLS 1.0 and 1.1
- 2026-05-06journald filling /var/log
- 2026-04-29Two rsync flags that matter for incremental backups
- 2026-04-22Which timeout a 504 is actually asking for
- 2026-04-15Responses compressed twice
- 2026-04-08Reducing DNS TTL does not take effect immediately
- 2026-04-01Three usual reasons certbot renewal fails
- 2026-03-25After, Wants and Requires are not the same thing
- 2026-03-18Deleted files that still hold disk space
- 2026-03-11Packet capture without root every time
- 2026-03-04Key authentication still asking for a password
- 2026-02-25Cache collisions from a missing Vary header
- 2026-02-18Keeping cron jobs from overlapping with flock
- 2026-02-11The cloud disk grew, the filesystem did not
- 2026-02-04Blocking ICMP creates problems later
- 2026-01-28The cost of leaving debug logging on
- 2026-01-21Upstream keepalive that made things slower
- 2026-01-14Five things to do before a major release upgrade
- 2026-01-07Changing the SSH port does not stop scanning
2025 · 51
- 2025-12-31A half-hour health check at the end of the year
- 2025-12-24OCSP stapling and the privacy problem it solves
- 2025-12-17ufw does not control ports published by Docker
- 2025-12-10Scan yourself to see what is really exposed
- 2025-12-03A monitoring script that is good enough
- 2025-11-26The SMART fields that actually matter
- 2025-11-19Deleting a swapfile that is busy
- 2025-11-12Where logs should go: file, journal, or stdout
- 2025-11-08BBR + fq on a single-core box: what actually changed
- 2025-11-05Getting the real client IP behind a reverse proxy
- 2025-10-29Cleaning old files with find, without the -mtime mistake
- 2025-10-22Summing and grouping columns with awk
- 2025-10-15sed -i differs between macOS and Linux
- 2025-10-08set -e will not save your script
- 2025-10-01Using pre-commit to stop the boring mistakes
- 2025-09-24Reading await and util in iostat
- 2025-09-17nginx -t passes and nothing changes
- 2025-09-10Plaintext HTTP/2 is rarely worth it
- 2025-09-03Container memory: what you see is not the limit
- 2025-08-27Monitor inodes, not just disk space
- 2025-08-20A few lines worth having in ~/.ssh/config
- 2025-08-13Excluding directories from tar, correctly
- 2025-08-06The root filesystem is full; do not start deleting logs
- 2025-07-30How often should an application heartbeat run
- 2025-07-23Connections exhausted: look here before adding hardware
- 2025-07-16What happens when Redis runs out of memory
- 2025-07-09Field names in structured logs are hard to change later
- 2025-07-023-2-1 backups for a small project
- 2025-06-25Finding the packet dropper with the LOG target
- 2025-06-18A little sandboxing for systemd services
- 2025-06-11When curl -v is not enough
- 2025-06-04An odd one-second stall from Expect: 100-continue
- 2025-05-280.0.0.0 and :: are not the same listener
- 2025-05-21DNSSEC turned a working domain into SERVFAIL
- 2025-05-14proxy_cache hit rate depends on the key
- 2025-05-07When variables expand inside a here-doc
- 2025-04-30Finding the commit that broke it with git bisect
- 2025-04-23Where cron output goes
- 2025-04-16Disk quotas so one account cannot fill the machine
- 2025-04-09Keep log timestamps in UTC
- 2025-04-02Rotating TLS session ticket keys
- 2025-03-26CNAME and MX cannot coexist, and mail breaks when they try
- 2025-03-19Holding package versions against automatic upgrades
- 2025-03-12TCP parameters worth tuning, and ones to leave alone
- 2025-03-05The full sequence for extending LVM
- 2025-02-26After a tzdata update, timestamps disagree
- 2025-02-19curl has four timeouts; do not set just one
- 2025-02-12HSTS preload is easy to submit and hard to undo
- 2025-01-30A 204 with a body stalls some clients
- 2025-01-17Do not judge a disk by a single fio number
- 2025-01-04The convenience and risk of SSH agent forwarding
2024 · 28
- 2024-12-22Replacing if with map in nginx
- 2024-12-09Should high-traffic services sample logs
- 2024-11-26Minimal mutual TLS configuration
- 2024-11-13What DNS round-robin cannot do
- 2024-10-31When files in /tmp actually disappear
- 2024-10-18A new kernel installed but not running
- 2024-10-05fstab will not mount after a disk move: the UUID changed
- 2024-09-22Clean up temporary files with trap
- 2024-09-09Oversized request headers and the 400 that follows
- 2024-08-27Two common try_files mistakes
- 2024-08-14A clock jump that ran the job twice
- 2024-07-31A wildcard certificate covers one level only
- 2024-07-18close and shutdown are not the same
- 2024-07-05Firewall rules gone after a reboot
- 2024-06-22One unescaped newline breaks the whole log line
- 2024-06-09mosh for links where SSH feels broken
- 2024-05-27Taking upstreams out: health checks versus balancing
- 2024-05-14NVMe wear: check it before it checks you
- 2024-05-01while read drops the last line
- 2024-04-18Testing a new host before DNS moves with --resolve
- 2024-04-05IPv6 has no fragmentation, so MTU hurts more
- 2024-03-23TLS 1.3 0-RTT: fast, and replayable
- 2024-03-10tmpfs uses memory, not disk
- 2024-02-26grep skips binary files and says so
- 2024-02-13cron and daylight saving: twice a year of surprises
- 2024-01-31Custom error pages that quietly return 200
- 2024-01-18sysctl changes that do not stick
- 2024-01-05Keep the backup key away from the backup