Operations

How to Use journalctl for Systemd Log Analysis on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Use journalctl for Systemd Log Analysis on RHEL 9

The Linux kernel’s systemd journal is a structured binary log that stores the output of every service, kernel message, boot sequence, and user session. Unlike traditional text-based syslog, the journal stores metadata alongside each log entry — the unit name, PID, UID, executable path, systemd unit state, and priority level — enabling far more precise […]

Read more
How to Monitor Disk Usage with df, du, lsblk and ncdu on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Monitor Disk Usage with df, du, lsblk and ncdu on RHEL 9

Running out of disk space is one of the most disruptive failures a server can experience. When a filesystem fills up, applications crash, log files stop writing (losing audit trails), databases corrupt transactions, and web servers return 500 errors. Proactive disk monitoring is essential — and RHEL 9 provides a full set of tools for […]

Read more
How to Schedule Automated Tasks with cron and anacron on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Schedule Automated Tasks with cron and anacron on RHEL 9

Automated task scheduling is the backbone of server maintenance: backups run at 3 AM, log cleanup happens daily, SSL certificates renew before they expire, and databases are vacuumed weekly. On RHEL 9, there are three scheduling mechanisms each suited to different scenarios. cron is the classic daemon that runs jobs on a schedule defined by […]

Read more
How to Use rsync for Efficient File Synchronisation on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Use rsync for Efficient File Synchronisation on RHEL 9

rsync is the Swiss Army knife of file synchronisation for Linux administrators. Unlike scp, which blindly copies every file every time, rsync computes a rolling checksum to identify changed file blocks and transfers only what has changed — making subsequent syncs dramatically faster and less bandwidth-intensive. It preserves file attributes (permissions, ownership, timestamps, ACLs, extended […]

Read more
How to Configure /etc/hosts, /etc/resolv.conf and DNS Resolution on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Configure /etc/hosts, /etc/resolv.conf and DNS Resolution on RHEL 9

DNS resolution on a Linux server is a multi-layered system. When an application calls getaddrinfo(“example.com”), the request passes through the Name Service Switch (NSS) framework, which consults sources in the order defined in /etc/nsswitch.conf — typically /etc/hosts first, then a DNS resolver. The DNS resolver reads its configuration from /etc/resolv.conf, which lists the DNS servers […]

Read more
How to Manage Users and Groups with useradd, groupadd and passwd on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Manage Users and Groups with useradd, groupadd and passwd on RHEL 9

While the earlier tutorial in this series covered the core useradd, usermod, and userdel tools for user lifecycle management, this guide goes deeper into the full toolkit for managing users and groups at scale on RHEL 9: bulk creation, password management with chpasswd, group administration with gpasswd, per-user resource limits with ulimit and /etc/security/limits.conf, user […]

Read more
How to Configure Fail2Ban to Protect SSH on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Configure Fail2Ban to Protect SSH on RHEL 9

Even with SSH key authentication enabled, a badly configured or temporarily accessible server with password auth still faces a constant barrage of brute-force login attempts. Fail2ban monitors log files for authentication failures, counts them per source IP, and when a configured threshold is crossed it issues a temporary ban by injecting a drop rule via […]

Read more
How to Set a Hostname and FQDN on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Set a Hostname and FQDN on RHEL 9

A server’s hostname is its identity on the network. The fully qualified domain name (FQDN) combines the short hostname with the DNS domain, forming an address like web01.example.com. Many services depend on a correctly configured hostname and FQDN to function properly: email servers use the FQDN in SMTP HELO greetings (incorrect values cause delivery rejections), […]

Read more
How to Sync Time with Chrony on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Sync Time with Chrony on RHEL 9

Accurate time synchronization is not optional on a server — it is a hard requirement. TLS certificate validation fails when the clock is wrong by more than a few minutes. Kerberos authentication rejects tickets with a clock skew over 5 minutes. Cron jobs fire at the wrong time. Log correlation across multiple servers becomes impossible […]

Read more
How to Configure Automatic Security Updates on RHEL 9 — step-by-step RHEL 9 tutorial on Progressive Robot

How to Configure Automatic Security Updates on RHEL 9

Unpatched software is the leading cause of server compromise. The majority of publicly disclosed vulnerabilities already have patches available by the time attackers start actively exploiting them — the window between patch availability and active exploitation has shrunk from months to days. Manually patching servers is error-prone and inconsistent at scale. Automatic security updates ensure […]

Read more
CHAT