<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>How-To on Luke Hebert</title><link>https://lukehebert.com/category/how-to/</link><description>Recent content in How-To on Luke Hebert</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 23 Aug 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://lukehebert.com/category/how-to/index.xml" rel="self" type="application/rss+xml"/><item><title>Enable Kubelet Certificates in Kubernetes if you forgot.</title><link>https://lukehebert.com/post/enable-kubelet-serving-certificates-in-kubernetes-if-you-did-not-do-so-during-cluster-deployment-metric-server/</link><pubDate>Sat, 23 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/enable-kubelet-serving-certificates-in-kubernetes-if-you-did-not-do-so-during-cluster-deployment-metric-server/</guid><description>Enables kubelet TLS bootstrapping so the controller-manager issues proper serving certificates, resolving the x509 certificate validation error in metrics-server. Covers deployment edits, controller-manager configuration, and automated certificate renewal.</description></item><item><title>firewalld Quick Reference</title><link>https://lukehebert.com/post/firewalld-cheatsheet/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/firewalld-cheatsheet/</guid><description>A practical cheat sheet for managing firewalld on RHEL, Fedora, and CentOS systems. Covers zones, services, ports, rich rules, NAT, and direct iptables-style rules.</description></item><item><title>Installing Kubernetes the Hard Way</title><link>https://lukehebert.com/post/update-kubernetes-the-hard-way/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/update-kubernetes-the-hard-way/</guid><description>A guide to building a Kubernetes cluster manually, component by component, without kubeadm or minikube. This approach provides a deep understanding of how Kubernetes works under the hood and prepares you for both certification exams and day-to-day operations.</description></item><item><title>CNIs and the CKA Exam</title><link>https://lukehebert.com/post/important-note-about-cni-and-cka-exam/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/important-note-about-cni-and-cka-exam/</guid><description>Clarifies which CNI plugins are acceptable for the CKA exam and explains why the official Kubernetes documentation avoids vendor-specific deployment commands.</description></item><item><title>CoreDNS</title><link>https://lukehebert.com/post/coredns/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/coredns/</guid><description>Set up a dedicated server as a DNS server using CoreDNS, covering binary installation, server startup, and IP-to-hostname mapping via the hosts plugin. CoreDNS also supports extensibility through plugins, including one for Kubernetes.</description></item><item><title>Kubernetes Gateway API: A Practical Guide Using NGINX (2025)</title><link>https://lukehebert.com/post/practical-guide-to-gateway-api-2025/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/practical-guide-to-gateway-api-2025/</guid><description>A practical walkthrough of the Kubernetes Gateway API using the NGINX Gateway Controller, covering HTTP routing, TLS termination, traffic splitting, and multi-protocol support. The concepts are implementation-agnostic and apply across any Gateway API-compatible controller.</description></item><item><title>Nginx Ingress Controller</title><link>https://lukehebert.com/post/nginx-ingress-controller/</link><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/nginx-ingress-controller/</guid><description>A practical guide to installing and configuring the Ingress-Nginx Controller in Kubernetes, covering Helm and kubectl methods, cloud-provider annotations, and local testing workflows.</description></item><item><title>Using Persistent Volume Claims in a Pod (PVC)</title><link>https://lukehebert.com/post/using-persistent-volume-claims-in-a-pod-pvc/</link><pubDate>Mon, 18 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/using-persistent-volume-claims-in-a-pod-pvc/</guid><description>This guide explains how Persistent Volumes and Persistent Volume Claims work together in Kubernetes and shows how to reference a PVC inside a Pod definition. It also covers access modes and the difference between static and dynamic provisioning.</description></item><item><title>K8s Impersonation: Stepping Into Someone Else's Pods</title><link>https://lukehebert.com/post/user-impersonation/</link><pubDate>Sat, 16 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/user-impersonation/</guid><description>Learn how Kubernetes administrators can verify permissions and impersonate other users using kubectl auth can-i and the &amp;ndash;as flag.</description></item><item><title>Finding Which Java Threads Are Eating Your CPU for Breakfast</title><link>https://lukehebert.com/post/finding-which-java-threads-are-consuming-your-cpu/</link><pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/finding-which-java-threads-are-consuming-your-cpu/</guid><description>When a Java process is eating your CPU, you need to know exactly which thread is responsible. This guide walks through JVisualVM, jstack, top, and jvmtop to pinpoint the culprit.</description></item><item><title>How to Inspect a Thread Dump Like a Pro</title><link>https://lukehebert.com/post/how-to-inspect-a-thread-dump-like-a-pro/</link><pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-inspect-a-thread-dump-like-a-pro/</guid><description>Learn how to capture, read, and interpret Java thread dumps using JDK tools like jstack and jcmd. Covers thread states, CPU analysis, deadlock detection, and practical tools for spotting performance issues.</description></item><item><title>Not Enough Storage Available While Using Jstack (Win)</title><link>https://lukehebert.com/post/not-enough-storage-available-while-using-jstack-win/</link><pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/not-enough-storage-available-while-using-jstack-win/</guid><description>A quick fix for the &amp;rsquo;not enough storage available&amp;rsquo; error when running jstack on Windows, caused by the JVM running under the Local System Account. Two workarounds using Psexec or JMX remote monitoring.</description></item><item><title>Backing Up etcd</title><link>https://lukehebert.com/post/backing-up-etcd/</link><pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/backing-up-etcd/</guid><description>A practical guide to backing up and restoring the etcd key-value database in a Kubernetes cluster. Covers snapshot-based and file-based backup methods, integrity checks, and static pod manifest updates.</description></item><item><title>Upgrading a K8 Cluster</title><link>https://lukehebert.com/post/upgrading-a-cluster/</link><pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/upgrading-a-cluster/</guid><description>A step-by-step guide to upgrading a Kubernetes cluster using kubeadm, covering control plane and worker node upgrades. Includes the full sequence from version planning through final verification.</description></item><item><title>Creating a TLS Secret in Kubernetes</title><link>https://lukehebert.com/post/creating-a-tls-secret-in-kubernetes/</link><pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/creating-a-tls-secret-in-kubernetes/</guid><description>Create a TLS secret from a certificate and key pair, then deploy a webhook server that mounts that secret to serve HTTPS on port 8443.</description></item><item><title>Jstack and Jcmd: What Are Your Java Threads Even Doing?</title><link>https://lukehebert.com/post/using-jcmd-jstack-to-get-thread-information/</link><pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/using-jcmd-jstack-to-get-thread-information/</guid><description>A practical guide to using the jcmd and jstack utilities for collecting thread dumps, heap data, and CPU information from a running JVM process. Includes ready-to-use scripts and one-liners for troubleshooting slow or hung Java applications.</description></item><item><title>Kubernetes Resource Management</title><link>https://lukehebert.com/post/kubernetes-resource-management/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-resource-management/</guid><description>A practical guide to configuring CPU, memory, and storage requests and limits in Kubernetes, covering container-level, Pod-level, and namespace-level resource controls. Includes troubleshooting steps for common scheduling and OOM issues.</description></item><item><title>Pod Node Assignment &amp; Manual Scheduling</title><link>https://lukehebert.com/post/manually-scheduling-pods/</link><pubDate>Mon, 11 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/manually-scheduling-pods/</guid><description>Learn how to assign Kubernetes pods to specific nodes at creation time and how to reassign running pods using Binding objects. Covers scheduler behavior and common pitfalls that leave pods stuck in Pending state.</description></item><item><title>JSON Path</title><link>https://lukehebert.com/post/json-path/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/json-path/</guid><description>A practical guide to JSON Path syntax, operators, and filters, with hands-on examples for extracting data from JSON documents and Kubernetes resources via kubectl.</description></item><item><title>Useful JsonPath Queries for Kubernetes</title><link>https://lukehebert.com/post/useful-json-path-queries-for-kubernetes/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/useful-json-path-queries-for-kubernetes/</guid><description>A practical guide to kubectl JsonPath expressions for extracting, formatting, and combining Kubernetes resource fields. Covers core patterns, array indexing, literal strings, and when to reach for jq instead.</description></item><item><title>Kubernetes EFS Storage (IAM Role)</title><link>https://lukehebert.com/post/kubernetes-efs-storage-iam-role/</link><pubDate>Sat, 09 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubernetes-efs-storage-iam-role/</guid><description>A practical guide to provisioning EFS filesystems and wiring them into Kubernetes via the AWS EFS CSI driver, IAM roles, and standard storage manifests. Covers StorageClass, PVCs, Deployments, and StatefulSets for shared, elastic storage.</description></item><item><title>Helm Templates: A Practical Reference</title><link>https://lukehebert.com/post/helm-template-cheat-sheet/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/helm-template-cheat-sheet/</guid><description>A comprehensive cheatsheet covering essential Helm template functions, syntax, and patterns for writing and debugging chart templates. Use it as a quick lookup while building or troubleshooting Helm charts.</description></item><item><title>Helm: A Practical Reference Guide</title><link>https://lukehebert.com/post/helm-usage-cheatsheet/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/helm-usage-cheatsheet/</guid><description>A quick-reference guide covering Helm repository management, chart installation, release management, and common deployment workflows. Use this as a day-to-day cheat sheet for working with Helm in Kubernetes environments.</description></item><item><title>kubectl Quick Reference for Kubernetes</title><link>https://lukehebert.com/post/kubectl-quick-reference-kubernetes/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kubectl-quick-reference-kubernetes/</guid><description>A quick reference covering commonly used kubectl commands, flags, and workflows for managing Kubernetes resources. Topics range from shell autocomplete and cluster contexts to creating, viewing, updating, and deleting resources.</description></item><item><title>pgBackRest and Helpful Commands</title><link>https://lukehebert.com/post/pgbackrest-and-helpful-commands/</link><pubDate>Wed, 02 Jul 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/pgbackrest-and-helpful-commands/</guid><description>A practical reference for pgBackRest backup, restore, and cleanup commands for PostgreSQL. Covers manual cleanup, incremental backups, retention policies, and stanza management.</description></item><item><title>Understanding Machine CPU Usage</title><link>https://lukehebert.com/post/understanding-machine-cpu-usage/</link><pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/understanding-machine-cpu-usage/</guid><description>A practical walkthrough of reading node_cpu_seconds_total from the Prometheus Node exporter, calculating per-second rates, and deriving overall CPU utilization percentages across multiple machines.</description></item><item><title>An Introductory How-To, With Examples, of Docker Exec</title><link>https://lukehebert.com/post/an-introductory-how-to-of-docker-exec/</link><pubDate>Thu, 29 May 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/an-introductory-how-to-of-docker-exec/</guid><description>A practical guide to the docker exec command, covering background execution, environment variables, interactive sessions, and working directory control. Includes real-world examples to help you get the most out of running commands inside containers.</description></item><item><title>Java TLS Client Debugging</title><link>https://lukehebert.com/post/java-tls-client-debugging/</link><pubDate>Mon, 19 May 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/java-tls-client-debugging/</guid><description>A guide to inspecting SSL/TLS handshakes in Java applications when built-in debugging is unavailable. Includes a lightweight TLS client tool for testing certificate and handshake issues.</description></item><item><title>Basic Kerberos Test Class in Java</title><link>https://lukehebert.com/post/basic-kerberos-test-class-in-java/</link><pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/basic-kerberos-test-class-in-java/</guid><description>A minimal Java class and JAAS configuration for testing Kerberos authentication in isolation, useful when application-level debugging is too noisy to isolate the problem.</description></item><item><title>Udev Diagnostic Test for a Broken /dev/null Node</title><link>https://lukehebert.com/post/udev-diagnostic-test/</link><pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/udev-diagnostic-test/</guid><description>A walkthrough of using udevadm to diagnose and inspect udev rule application on a /dev/null device node. Covers the test command syntax and interprets the output for troubleshooting permission issues.</description></item><item><title>Postgres per-table autovacuum management</title><link>https://lukehebert.com/post/posgres-per-table-autovacuum-management/</link><pubDate>Mon, 28 Oct 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/posgres-per-table-autovacuum-management/</guid><description>Tune Postgres per-table autovacuum settings and track them with a single SQL view. Covers global defaults, table-specific overrides, and a ready-to-use monitoring query.</description></item><item><title>Catching Packets: Tuning Linux Network Inbound</title><link>https://lukehebert.com/post/monitoring-and-tuning-the-linux-networking-stack-receiving-data/</link><pubDate>Fri, 11 Oct 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/monitoring-and-tuning-the-linux-networking-stack-receiving-data/</guid><description>A deep dive into how the Linux kernel receives network packets, covering the full path from NIC hardware through NAPI, softirqs, GRO, RPS, and protocol layers. Includes practical monitoring commands and tuning knobs for each stage.</description></item><item><title>Wireshark SSL Filters: Cutting Through the Crypto Noise</title><link>https://lukehebert.com/post/wireshark-filter-for-ssl-traffic/</link><pubDate>Fri, 30 Aug 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/wireshark-filter-for-ssl-traffic/</guid><description>A collection of useful Wireshark display filters for analyzing SSL/TLS handshake traffic, including a reference table of handshake message types and notes on cipher suite considerations.</description></item><item><title>Docker/Kubernetes Network Diagnostic Tools</title><link>https://lukehebert.com/post/docker-kubernetes-network-diagnostic-tools/</link><pubDate>Mon, 26 Aug 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/docker-kubernetes-network-diagnostic-tools/</guid><description>A practical guide to using the netshoot container for Docker and Kubernetes network troubleshooting. Covers network namespaces, tcpdump examples, and real-world diagnostic workflows.</description></item><item><title>How to Get the Most Out of Postgres Memory Settings</title><link>https://lukehebert.com/post/how-to-get-the-most-out-of-postgres-memory-settings/</link><pubDate>Wed, 12 Jun 2024 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-get-the-most-out-of-postgres-memory-settings/</guid><description>A practical guide to tuning Postgres memory parameters including shared_buffers, work_mem, and maintenance_work_mem. Learn how to measure actual usage, avoid out-of-memory crashes, and balance allocations for optimal performance.</description></item><item><title>How to Clean Up pg_wal If the Disk Is Full</title><link>https://lukehebert.com/post/how-to-clean-up-pg-wal-if-the-disk-is-full/</link><pubDate>Mon, 04 Dec 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-clean-up-pg-wal-if-the-disk-is-full/</guid><description>A practical guide to resolving PostgreSQL pg_wal disk-full issues, covering both reactive recovery steps and proactive measures to prevent recurrence. Learn how to free space, move the WAL directory, and configure archiving correctly.</description></item><item><title>Analyzing Large Java Heap Dumps Using Memory Analyzer CLI</title><link>https://lukehebert.com/post/analyzing-large-java-heap-dumps-using-memory-analyzer-cli-in-linux/</link><pubDate>Fri, 17 Nov 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/analyzing-large-java-heap-dumps-using-memory-analyzer-cli-in-linux/</guid><description>When MAT UI fails to handle very large heap dumps, the Memory Analyzer CLI provides a reliable alternative on Linux. This post walks through the setup and commands needed to parse multi-gigabyte dumps and generate shareable HTML reports.</description></item><item><title>Demystifying Docker DNS: How Containers Talk</title><link>https://lukehebert.com/post/understanding-docker-dns/</link><pubDate>Wed, 15 Nov 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/understanding-docker-dns/</guid><description>An overview of how Docker&amp;rsquo;s built-in DNS resolver enables container-to-container communication and service discovery. Covers default configurations, custom DNS setups, and practical use cases.</description></item><item><title>The Beer Drinker's Guide to SAML Duo Security</title><link>https://lukehebert.com/post/the-beer-drinkers-guide-to-saml-duo-security/</link><pubDate>Mon, 11 Sep 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/the-beer-drinkers-guide-to-saml-duo-security/</guid><description>A plain-English walkthrough of how SAML authentication works, using the analogy of buying a beer at a concert. Covers IdP and SP configuration, IdP-initiated vs SP-initiated flows, and practical troubleshooting steps.</description></item><item><title>How to Start a SysV Init Script After Network Starts</title><link>https://lukehebert.com/post/how-to-start-a-sysv-init-script-after-network-starts-in-red-hat-enterprise-linux-7/</link><pubDate>Tue, 27 Jun 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-start-a-sysv-init-script-after-network-starts-in-red-hat-enterprise-linux-7/</guid><description>Configure a legacy SysV init script to wait for network availability in RHEL 7 by adding the Required-Start LSB directive. This guide shows how systemd honors those headers so third-party initscripts start in the correct order.</description></item><item><title>Override systemd unit files</title><link>https://lukehebert.com/post/override-systemd-unit-files/</link><pubDate>Tue, 27 Jun 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/override-systemd-unit-files/</guid><description>Learn how to safely override systemd unit and timer files using systemctl edit, avoiding the pitfalls of editing package-managed files directly. Covers creating drop-in overrides, full replacements, and reverting changes.</description></item><item><title>How to Change Docker Root Data Directory</title><link>https://lukehebert.com/post/how-to-change-docker-root-data-directory/</link><pubDate>Fri, 02 Jun 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-change-docker-root-data-directory/</guid><description>A step-by-step guide to relocating the Docker data directory to a new path. Covers daemon configuration, data migration, and cleanup for both older and newer Docker versions.</description></item><item><title>Which Container Ate All Your Storage?</title><link>https://lukehebert.com/post/docker-determining-container-responsible-for-largest-overlay-directories/</link><pubDate>Thu, 18 May 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/docker-determining-container-responsible-for-largest-overlay-directories/</guid><description>A practical guide to identifying which Docker containers occupy the largest overlay2 directories. Uses docker inspect, jq, and xargs to map cryptic layer hashes back to human-readable container names.</description></item><item><title>DNS</title><link>https://lukehebert.com/post/dns/</link><pubDate>Tue, 02 May 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/dns/</guid><description>A practical guide to understanding DNS resolution tiers and troubleshooting name resolution issues in Linux environments. Covers /etc/nsswitch.conf, /etc/resolv.conf, and local caching services.</description></item><item><title>Optimize PostgreSQL Server Performance Through Configuration</title><link>https://lukehebert.com/post/optimize-postgresql-server-performance-through-configuration/</link><pubDate>Thu, 27 Apr 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/optimize-postgresql-server-performance-through-configuration/</guid><description>This guide walks through four key PostgreSQL configuration settings that significantly impact server performance. Learn how to tune shared_buffers, wal_buffers, effective_cache_size, and work_mem for your specific workload.</description></item><item><title>PostgreSQL Shared Memory (Huge Pages)</title><link>https://lukehebert.com/post/postgresql-shared-memory-huge-pages/</link><pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/postgresql-shared-memory-huge-pages/</guid><description>Calculating the right number of Linux huge pages for PostgreSQL is trickier than just dividing shared_buffers by the page size. This walkthrough shows how to use tuned to manage allocation and why you need to round up based on actual memory usage.</description></item><item><title>PostgreSQL WAL Retention and Clean Up pg_archivecleanup</title><link>https://lukehebert.com/post/postgresql-wal-retention-and-clean-up-pg-archivecleanup/</link><pubDate>Fri, 21 Apr 2023 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/postgresql-wal-retention-and-clean-up-pg-archivecleanup/</guid><description>A practical guide to managing PostgreSQL WAL retention using the pg_archivecleanup utility, covering dry-run and delete modes, retention criteria, and a code walkthrough for novice users.</description></item><item><title>Using SQLline to Test JDBC Connectors</title><link>https://lukehebert.com/post/using-sqlline-to-test-jdbc-connectors/</link><pubDate>Thu, 15 Dec 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/using-sqlline-to-test-jdbc-connectors/</guid><description>A practical guide to using SQLline to replicate SQL client behavior when testing JDBC connectors. Covers downloading the tool, setting up the classpath, and connecting to an Azure MySQL instance.</description></item><item><title>Apache Tuner</title><link>https://lukehebert.com/post/apache-tuner/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/apache-tuner/</guid><description>Apache Tuner is a Perl script that analyzes your Apache configuration and system resources to surface quick performance wins. Run it, read the suggestions, and tune your MPM, KeepAlive, and worker settings with confidence.</description></item><item><title>Awk Apache Log Files By IP and Date</title><link>https://lukehebert.com/post/awk-apache-log-files-by-ip-and-date/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/awk-apache-log-files-by-ip-and-date/</guid><description>Filter Apache access logs by IP address and date using awk. A quick, practical approach to pulling specific entries without loading a full log viewer.</description></item><item><title>Bash Piped Logging</title><link>https://lukehebert.com/post/bash-piped-logging/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/bash-piped-logging/</guid><description>A quick bash logging setup that uses a named pipe and tee to capture stdout and stderr to a file while keeping the terminal interactive. Five lines of shell code, zero external dependencies.</description></item><item><title>Bash Shell Redirects</title><link>https://lukehebert.com/post/bash-shell-redirects/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/bash-shell-redirects/</guid><description>A quick reference for the most common bash shell redirect operators, with examples showing how to send stdout and stderr to files or swap them.</description></item><item><title>Check and Backup Databases</title><link>https://lukehebert.com/post/check-and-backup-databases/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-and-backup-databases/</guid><description>A quick bash workflow for running integrity checks and generating SQL dumps across a set of user databases in MySQL.</description></item><item><title>Check Disk State</title><link>https://lukehebert.com/post/check-disk-state/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-disk-state/</guid><description>A quick one-liner to list every mounted ext3 or ext4 partition along with its label and filesystem state, useful for spotting unclean shutdowns or journal issues at a glance.</description></item><item><title>Counting Connecting IPs on Port 80 with netstat and ss</title><link>https://lukehebert.com/post/connecting-ip-on-port-80-count-netstat-ss/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/connecting-ip-on-port-80-count-netstat-ss/</guid><description>Two quick one-liners that count how many unique remote IPs are connected to port 80, using either netstat or ss. Handy for spotting unexpected traffic or verifying that only expected clients are hitting your web server.</description></item><item><title>Create Symbols and Resolve Stack (MySQL)</title><link>https://lukehebert.com/post/create-symbols-and-resolve-stack-mysql/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/create-symbols-and-resolve-stack-mysql/</guid><description>Learn how to extract dynamic symbols from the mysqld binary and use them to resolve a crash stack dump into readable function names.</description></item><item><title>Filter RPM URLs with awk</title><link>https://lukehebert.com/post/filter-rpm-urls-with-awk/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/filter-rpm-urls-with-awk/</guid><description>A quick awk one-liner that pulls RPM package URLs from log files or package lists by matching lines containing both &amp;lsquo;autoinstall&amp;rsquo; and &amp;lsquo;.rpm&amp;rsquo;.</description></item><item><title>Fixing MySQL Invalid Keys</title><link>https://lukehebert.com/post/fix-mysql-invalid-keys/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/fix-mysql-invalid-keys/</guid><description>A quick bash script to identify and repair MySQL tables with invalid or corrupted MYI key files, then force a rebuild using USE_FRM.</description></item><item><title>InnoDB Corruption and Recovery Guide</title><link>https://lukehebert.com/post/innodb-corruption-and-recovery-guide/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/innodb-corruption-and-recovery-guide/</guid><description>A practical, step-by-step guide for diagnosing and recovering from common InnoDB corruption issues, covering first response, log analysis, checksum verification, and data restoration techniques.</description></item><item><title>Locate Files Based on Time Modified with find</title><link>https://lukehebert.com/post/locate-files-based-on-time-modified-how-many-days-since-it-has-been-modified/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/locate-files-based-on-time-modified-how-many-days-since-it-has-been-modified/</guid><description>A quick reference for using find with -mtime and -mmin to locate files by how long ago they were last modified, including the common off-by-one confusion around the +1 flag.</description></item><item><title>Making the Cut: Slicing Up Text in the Linux CLI</title><link>https://lukehebert.com/post/usage-of-cut/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/usage-of-cut/</guid><description>A quick reference for the cut command, covering how to split text by a delimiter and extract specific fields. Useful for parsing CSV, log files, and other delimited data from the command line.</description></item><item><title>Multi-test (Emulating a Busy Server)</title><link>https://lukehebert.com/post/multi-test-emulating-a-busy-server/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/multi-test-emulating-a-busy-server/</guid><description>A Perl-based utility that emulates a busy server by spawning multiple threads performing varied IO workloads. It uses direct IO and cache invalidation to benchmark raw disk performance in a multitasking environment.</description></item><item><title>Multi-Zone Views for BIND9 (Split Horizon)</title><link>https://lukehebert.com/post/multi-zone-views-for-bind9-internal-external-etc/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/multi-zone-views-for-bind9-internal-external-etc/</guid><description>Learn how to configure BIND9 views to serve different DNS records to internal and external clients from a single server. This guide walks through zone files, ACLs, recursion control, and the $include directive to keep your setup clean and secure.</description></item><item><title>My Trace Route (mtr) Packet Loss Testing</title><link>https://lukehebert.com/post/my-trace-route-mtr-packet-loss-testing/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/my-trace-route-mtr-packet-loss-testing/</guid><description>A quick walkthrough of using mtr in report mode to capture packet loss data across network hops. Learn how to run a 30-cycle test and read the output to isolate where loss is occurring.</description></item><item><title>MySQL General Log</title><link>https://lukehebert.com/post/mysql-general-log/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mysql-general-log/</guid><description>A quick walkthrough of enabling, configuring, and querying the MySQL general log to capture every statement that hits your server.</description></item><item><title>MySQL Grants</title><link>https://lukehebert.com/post/mysql-grants/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mysql-grants/</guid><description>A quick reference for viewing and applying MySQL GRANT statements, including the specific privileges needed for routine and view management.</description></item><item><title>Nginx Flood Protection with limit_req</title><link>https://lukehebert.com/post/ngins-flood-protection-with-limit-req/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ngins-flood-protection-with-limit-req/</guid><description>A practical walkthrough of Nginx&amp;rsquo;s limit_req module, showing how to cap request rates and protect PHP endpoints from HTTP-based denial-of-service attacks.</description></item><item><title>Nginx Multiple Conditional Test</title><link>https://lukehebert.com/post/nginx-multiple-conditional-test/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/nginx-multiple-conditional-test/</guid><description>Learn how to chain multiple if conditions in Nginx to build a composite variable and route traffic based on the combined result.</description></item><item><title>Nginx ngx_http_rewrite_module</title><link>https://lukehebert.com/post/nginx-mod-rewrite-module/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/nginx-mod-rewrite-module/</guid><description>A practical reference for Nginx&amp;rsquo;s ngx_http_rewrite_module, covering the break, if, return, rewrite, set, and related directives with working examples and processing-order details.</description></item><item><title>Noapic</title><link>https://lukehebert.com/post/noapic/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/noapic/</guid><description>The noapic kernel parameter disables the Advanced Programmable Interrupt Controller, a useful workaround for interrupt routing issues on older or misconfigured systems.</description></item><item><title>NUMA and MySQL Swap Insanity</title><link>https://lukehebert.com/post/numa-mysql-swap-insanity/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/numa-mysql-swap-insanity/</guid><description>A deep dive into why MySQL on NUMA systems suffers from unpredictable swapping, and how a single numactl interleave fix eliminates the problem entirely.</description></item><item><title>Percona Xtradb Recovery</title><link>https://lukehebert.com/post/percona-xtradb-recovery/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/percona-xtradb-recovery/</guid><description>Percona XtraDB Cluster can recover a crashed node and rejoin it to the cluster using an incremental state transfer. This post walks through how GTID-based position recovery works under the hood and what you will see in the error log during the process.</description></item><item><title>Permission Rescue: getfacl to Save Your Future Self</title><link>https://lukehebert.com/post/restore-permissions-on-or-get-permissions-on-all-files-and-folder-in/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/restore-permissions-on-or-get-permissions-on-all-files-and-folder-in/</guid><description>A quick reference for backing up and restoring full ACL permissions across an entire directory tree using getfacl and setfacl.</description></item><item><title>RAID Error Code Key Qualifiers</title><link>https://lukehebert.com/post/raid-error-code-key-qualifers/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/raid-error-code-key-qualifers/</guid><description>A quick reference for understanding the key qualifiers that appear in RAID controller error codes, so you can pinpoint the exact failure condition instead of guessing from a generic error message.</description></item><item><title>Regex Quick Reference</title><link>https://lukehebert.com/post/regex/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/regex/</guid><description>A practical cheat sheet covering common regex patterns, Perl-compatible lookarounds, and character classes for everyday text processing in bash and grep.</description></item><item><title>Show Global Maximum SQL Connections in Use</title><link>https://lukehebert.com/post/show-global-maximum-sql-connections-in-use/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/show-global-maximum-sql-connections-in-use/</guid><description>A quick MySQL command to check the peak number of simultaneous connections your server has handled, useful for capacity planning and diagnosing connection bottlenecks.</description></item><item><title>Understanding Linux Permissions</title><link>https://lukehebert.com/post/understanding-linux-permissions/</link><pubDate>Mon, 24 Jan 2022 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/understanding-linux-permissions/</guid><description>A practical breakdown of how Linux file permissions work, including the symbolic and numeric chmod methods, special bits like setuid and sticky, and how permissions differ between files and directories.</description></item><item><title>Resetting AD KRBTGT Password</title><link>https://lukehebert.com/post/resetting-ad-krbtgt-password/</link><pubDate>Fri, 05 Nov 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/resetting-ad-krbtgt-password/</guid><description>A practical guide to resetting the krbtgt account password in Active Directory, including considerations for external trusts and the Microsoft-provided reset script.</description></item><item><title>IPv4 Kernel Stack Optimizations</title><link>https://lukehebert.com/post/ipv4-kernel-stack-optimizations/</link><pubDate>Tue, 07 Sep 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ipv4-kernel-stack-optimizations/</guid><description>A practical walkthrough for tuning Linux TCP/IP stack parameters, from selecting a congestion control algorithm to applying sysctl settings for high-throughput workloads.</description></item><item><title>Deploy CFSSL CA Server</title><link>https://lukehebert.com/post/deploy-cfssl-ca-server/</link><pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/deploy-cfssl-ca-server/</guid><description>A step-by-step guide to deploying a CFSSL-backed certificate authority with PostgreSQL storage, OCSP responder, and CRL distribution. Covers installation, CA initialization, service configuration, and Nginx reverse proxy setup.</description></item><item><title>AWS Volume Juggling for Impaired Nodes and Node Health Check</title><link>https://lukehebert.com/post/aws-volume-juggling-for-impaired-nodes-and-node-health-check/</link><pubDate>Wed, 28 Jul 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/aws-volume-juggling-for-impaired-nodes-and-node-health-check/</guid><description>A practical guide to diagnosing impaired EC2 instances by detaching and reattaching EBS root volumes to a rescue instance. Covers the full workflow from stopping the impaired node to restoring it to normal service.</description></item><item><title>Delete Existing Users From Ranger</title><link>https://lukehebert.com/post/delete-existing-users-from-ranger/</link><pubDate>Tue, 06 Jul 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/delete-existing-users-from-ranger/</guid><description>A quick walkthrough of using the Ranger REST API to bulk-delete existing users, including how to capture an auth cookie and loop through a user list with curl.</description></item><item><title>Spark Token Debug</title><link>https://lukehebert.com/post/spark-token-debug/</link><pubDate>Thu, 04 Feb 2021 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/spark-token-debug/</guid><description>Enable verbose Kerberos and token logging on Spark driver and executor nodes to capture the diagnostic data you need when authentication is failing. Covers log4j configuration files and the exact spark-submit flags to wire them in.</description></item><item><title>Common Error Codes for Active Directory Authentication</title><link>https://lukehebert.com/post/common-error-codes-for-active-directory-authentication-acceptsecuritycontext/</link><pubDate>Tue, 24 Nov 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/common-error-codes-for-active-directory-authentication-acceptsecuritycontext/</guid><description>A quick reference for the LDAP error codes returned during Active Directory bind operations, including what each code means and how to interpret the AcceptSecurityContext error message.</description></item><item><title>Cannot Find Key of Appropriate Type, Kerberoasting &amp; Hadoop</title><link>https://lukehebert.com/post/cannot-find-key-of-the-appropriate-type-to-decrypt-ap-rep/</link><pubDate>Tue, 03 Nov 2020 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/cannot-find-key-of-the-appropriate-type-to-decrypt-ap-rep/</guid><description>A troubleshooting guide for the Kerberos error &amp;lsquo;Cannot find key of the appropriate type to decrypt AP REP,&amp;rsquo; covering encryption type mismatches between keytabs and Active Directory, plus practical steps to align AES and RC4 settings.</description></item><item><title>Checking Hole Punching</title><link>https://lukehebert.com/post/checking-hole-punching/</link><pubDate>Tue, 06 Feb 2018 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/checking-hole-punching/</guid><description>Learn how to verify that your file system supports hole punching by creating a test file, punching a hole with fallocate, and confirming the space savings with du.</description></item><item><title>"Not That Key!" No, Your Other Key...</title><link>https://lukehebert.com/post/specified-version-of-key-is-not-available-44/</link><pubDate>Mon, 21 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/specified-version-of-key-is-not-available-44/</guid><description>Kerberos error 44 occurs when the keytab KVNO does not match the KDC database. This guide walks through diagnosing the mismatch and regenerating the keytab to restore authentication.</description></item><item><title>Check Hue Credentials and Flags (Kerberos)</title><link>https://lukehebert.com/post/check-hue-credentials-or-keytab-credentials-and-credential-flags-kerberos/</link><pubDate>Fri, 04 Aug 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-hue-credentials-or-keytab-credentials-and-credential-flags-kerberos/</guid><description>Walk through inspecting a Hue keytab file, verifying its principals with klist, and confirming that the resulting ticket carries the Renewable flag Hue requires for long-running service operations.</description></item><item><title>SAML Custom Attributes in Hue</title><link>https://lukehebert.com/post/saml-custom-attributes-in-hue/</link><pubDate>Fri, 21 Jul 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/saml-custom-attributes-in-hue/</guid><description>Hue returns a Permission Denied error when the IDP sends custom SAML attributes that pysaml2 cannot map. This guide walks through creating an attribute mapping file and configuring Hue to resolve the issue.</description></item><item><title>Trace Kerberos in the CLI</title><link>https://lukehebert.com/post/trace-kerberos-in-the-cli/</link><pubDate>Thu, 29 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/trace-kerberos-in-the-cli/</guid><description>Kerberos authentication failures can be frustrating to debug. Setting the KRB5_TRACE environment variable gives you detailed library-level logging that pinpoints exactly where the exchange breaks down.</description></item><item><title>Active Directory Error Types: Kerberos Client Credentials Revoked</title><link>https://lukehebert.com/post/active-directory-error-types-ad_mit-client-credentials-revoked/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/active-directory-error-types-ad_mit-client-credentials-revoked/</guid><description>A quick reference for diagnosing Kerberos authentication failures in Active Directory, covering the lockout state machine and the specific error codes (5be, 775, 18) that indicate revoked credentials or a locked account.</description></item><item><title>Check Entropy Levels on Linux</title><link>https://lukehebert.com/post/check-entropy-levels-on-linux/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/check-entropy-levels-on-linux/</guid><description>Learn how to check and interpret the kernel entropy pool on Linux, why low entropy can slow down SSL handshakes and SSH sessions, and what to do when the pool runs dry.</description></item><item><title>Checking AES-NI Availability</title><link>https://lukehebert.com/post/checking-aes-ni-availability/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/checking-aes-ni-availability/</guid><description>A quick reference for verifying AES-NI hardware acceleration across Java, OpenSSL, and the CPU itself. Includes benchmark commands to confirm the instruction set is actually being used.</description></item><item><title>Cleanup Alternatives</title><link>https://lukehebert.com/post/cleanup-alternatives/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/cleanup-alternatives/</guid><description>A quick procedure for resolving Cloudera Manager agent failures caused by corrupted system alternatives entries, including the exact commands to stop the agent, purge stale alternatives, and restart cleanly.</description></item><item><title>hostname and hostname -f (Not Getting FQDN)</title><link>https://lukehebert.com/post/hostname-and-hostname-f-not-getting-fqdn/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/hostname-and-hostname-f-not-getting-fqdn/</guid><description>When hostname -f returns a short name instead of a fully qualified domain name, the issue usually traces back to the HOSTNAME variable in /etc/sysconfig/network or a misconfigured /etc/hosts entry. Understanding the difference between the gethostname and gethostbyname system calls makes the fix straightforward.</description></item><item><title>How to Enable Kerberos Event Logging (Windows)</title><link>https://lukehebert.com/post/how-to-enable-kerberos-event-logging-windows/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/how-to-enable-kerberos-event-logging-windows/</guid><description>Kerberos authentication failures can be tricky to diagnose without detailed logging. This guide walks you through enabling Kerberos event logging on a Windows machine via the registry so you can capture authentication events in the system log.</description></item><item><title>Kerberos CLI Debug Tracing &amp; Hadoop</title><link>https://lukehebert.com/post/kerberos-cli-debug-trace-hadoop/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-cli-debug-trace-hadoop/</guid><description>A quick reference for enabling verbose Kerberos and Hadoop debug output on the command line, so you can see exactly where authentication is failing.</description></item><item><title>Kerberos Debug Mode for the JVM, Spark, and SPNEGO</title><link>https://lukehebert.com/post/kerberos-debug-mode-for-the-jvmsparkspnego/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-debug-mode-for-the-jvmsparkspnego/</guid><description>Enable Kerberos debug logging in a JVM, Spark driver, and Spark executors to troubleshoot SPNEGO and authentication issues. Covers the exact Java system properties, Spark configuration keys, and how to redirect Spark logs to stdout so Kerberos output interleaves with application logs.</description></item><item><title>Kerberos Shortname Mapping (Auth_to_Local)</title><link>https://lukehebert.com/post/kerberos-shortname-mapping-auth-to-local/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/kerberos-shortname-mapping-auth-to-local/</guid><description>A practical walkthrough of how Hadoop maps Kerberos principals to short names via the auth_to_local property, including rule syntax, acceptance filters, and common troubleshooting patterns.</description></item><item><title>keyctl: Key Has Been Revoked</title><link>https://lukehebert.com/post/keyctl-link-key-has-been-revoked/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/keyctl-link-key-has-been-revoked/</guid><description>A quick guide to diagnosing and resolving the &amp;lsquo;Key has been revoked&amp;rsquo; error in the Linux kernel keyring using keyctl commands.</description></item><item><title>MySQL Key Constraints (FK) by Database</title><link>https://lukehebert.com/post/mysql-key-constraints-fk-by-db/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/mysql-key-constraints-fk-by-db/</guid><description>A quick reference for querying MySQL information_schema to list all foreign key constraints in a given database, including the referencing and referenced columns.</description></item><item><title>namei: Checking Path Traversal and Permissions</title><link>https://lukehebert.com/post/namei-checking-path-traversal-and-permissions/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/namei-checking-path-traversal-and-permissions/</guid><description>The namei command walks a full path and prints ownership, permissions, and symbolic link resolution for every component. It is a quick way to spot where a permission chain breaks or a symlink redirects unexpectedly.</description></item><item><title>NTP Errors</title><link>https://lukehebert.com/post/ntp-errors/</link><pubDate>Tue, 27 Jun 2017 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/ntp-errors/</guid><description>A host health test flags NTP clock drift when the system clock falls out of sync with its NTP servers. This guide walks through diagnosing and resolving common NTP synchronization failures.</description></item><item><title>A guide to Mod_Rewrite</title><link>https://lukehebert.com/post/a-guide-to-mod_rewrite/</link><pubDate>Sun, 22 Feb 2015 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/a-guide-to-mod_rewrite/</guid><description>Mod_rewrite is a rule-based rewriting engine (based on a regular-expression parser) to rewrite requested URLs on the fly.</description></item><item><title>Fixing Udev 70-persistent-net.rules</title><link>https://lukehebert.com/post/fixing-udev-70-persistent-net-rules/</link><pubDate>Wed, 13 Aug 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/fixing-udev-70-persistent-net-rules/</guid><description>Have you ever replaced a network interface (NIC) or performed a chassis swap? If you are an administrator or IT professional the chances are good that at some point or another you have had to deal with sticky udev rules.</description></item><item><title>Postfix, Message Flows, and Common Issues</title><link>https://lukehebert.com/post/postfix-message-flows-and-common-issues/</link><pubDate>Sun, 18 May 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/postfix-message-flows-and-common-issues/</guid><description>Postfix is a free and open-source mail transfer agent (MTA) that routes and delivers electronic mail. This post covers core system concepts.</description></item><item><title>Postfix Command Reference</title><link>https://lukehebert.com/post/postfix-command-reference/</link><pubDate>Sun, 04 May 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/postfix-command-reference/</guid><description>A quick Postfix Command Reference</description></item><item><title>Hypervisor Classifications</title><link>https://lukehebert.com/post/hypervisor-classifications/</link><pubDate>Sat, 05 Apr 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/hypervisor-classifications/</guid><description>There are a variety of Hypervisors out in the in the hosting space. Here is a list of the current classifications.</description></item><item><title>Xen Vitualization with Bridged Networking</title><link>https://lukehebert.com/post/xen-vitualization-with-bridged-networking/</link><pubDate>Sat, 05 Apr 2014 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/xen-vitualization-with-bridged-networking/</guid><description>Xen is an open-source type-1 or bare metal hypervisor, which makes it possible to run many instances of an operating system or entirely different operating systems in parallel on a single machine (or host).</description></item><item><title>Exim Cheatsheet</title><link>https://lukehebert.com/post/exim-cheatsheet/</link><pubDate>Mon, 25 Jul 2011 00:00:00 +0000</pubDate><guid>https://lukehebert.com/post/exim-cheatsheet/</guid><description>A set of useful commands for administrators working with Exim 4.</description></item></channel></rss>