Welcome to the Café

Explore the world of Linux with clear, approachable guides. Whether you’re just starting out or looking to sharpen your skills, you’ll find something to brew your interest here.

Taming journalctl: Tips for Filtering Out Noise and Finding Useful Error Messages in Your System Logs

Introduction to journalctl

I’ve been using Linux for years, and journalctl has become an essential tool in my daily workflow. If you’re like me, you’re probably familiar with the journalctl command, which is used to query and display logs from systemd’s journal. However, with the vast amount of data that’s logged, it can be overwhelming to sift through and find the information you need. In this article, I’ll share some practical tips and tricks for filtering out noise and finding useful error messages in your system logs using journalctl.

[Read More]

Taming Resource-Hungry Background Tasks with nice and ionice

Introduction to Resource Management

I’ve seen this go wrong when you’ve got a bunch of background tasks running on your Linux machine, whether it’s a homelab, self-hosting services, or just your everyday desktop. If you don’t manage these tasks, they can consume way too many resources. That’s where nice and ionice come in - they’re essential tools for taming those resource-hungry background tasks.

Understanding nice and ionice

The real trick is understanding how nice and ionice work. nice adjusts the scheduling priority of a process, which is useful when you want to control how much CPU time a process gets. By default, Linux uses a dynamic priority scheduling algorithm, but nice lets you override this and set a manual priority. The nice value ranges from -20 (highest priority) to 19 (lowest priority).

[Read More]

Troubleshooting Slow Log Rotation in Small Linux Servers with High IO Workloads

Introduction to Log Rotation

I’ve seen log rotation become a major issue on small servers with high IO workloads - it’s a problem that can sneak up on you quickly. Logs can grow at an alarming rate, and if you don’t manage them properly, they can fill up your disk space in no time. The real trick is to stay on top of log rotation, and that’s where tools like logrotate come in.

[Read More]

Taming Log Noise with jq and yq: Extracting Insights from Messy JSON and YAML Logs

Introduction to Log Noise

I’ve spent countless hours digging through log files to troubleshoot issues or monitor system performance. But let’s be real, log noise can quickly become overwhelming. I’ve seen this go wrong when you’re dealing with massive log files and no clear way to extract valuable insights. Recently, I’ve been working with increasingly complex JSON and YAML logs, which led me to explore tools like jq and yq to tame the noise. Don’t bother with trying to parse these logs manually - it’s a recipe for disaster.

[Read More]
linux  logging  jq  yq 

Taming the Beast: Getting borg Backup to Respect My Limited Laptop Disk Space

Introduction to Borg Backup

I’ve been on the hunt for a reliable backup solution that can handle my laptop’s limited disk space for ages. When I stumbled upon Borg Backup in 2025, I thought I’d finally found the answer. This deduplicating backup program has been a game-changer, but I soon realized that its default settings weren’t exactly optimized for my laptop’s storage constraints. So, I set out to tame the beast and get Borg Backup to respect my laptop’s limited disk space.

[Read More]

Taming Resource-Intensive Desktop Apps with cgroups on Linux

Introduction to cgroups

I’ve found that managing resources on Linux systems can be a real challenge, especially when dealing with resource-intensive desktop apps. That’s where cgroups come in - a powerful tool that allows you to allocate and manage system resources such as CPU, memory, and I/O for a group of processes. In my experience, cgroups can be a game-changer for keeping your system running smoothly.

Creating a cgroup

To get started with cgroups, you’ll need to create a new group using the cgcreate command. This command not only creates the group but also specifies the subsystems that will be controlled. For example, to create a cgroup that controls CPU and memory usage, you can use the following command:

[Read More]

Taming My Terminal History: Customizing Bash History Behavior to Reduce Clutter

Introduction to Terminal History

I’ve gotten pretty used to relying on my terminal history to recall previously executed commands. But let’s be honest, over time this history can become a mess with unnecessary entries, making it tough to find what I need. In this article, I’ll cover how to customize Bash history behavior to reduce clutter and improve productivity.

Understanding Bash History

Bash history is stored in a file specified by the HISTFILE environment variable, which defaults to ~/.bash_history. Each time a command is executed, it gets appended to this file. The HISTSIZE variable determines the maximum number of commands stored in memory, while HISTFILESIZE sets the maximum number of commands written to the history file. To view your current Bash history settings, you can use the following commands:

[Read More]

Taming the Beast: How I Finally Got My Laptop's Power Consumption Under Control with Linux

Introduction to Power Consumption

I’ve always been concerned about my laptop’s power consumption, and in 2025, I noticed my battery life was decreasing significantly. After some research and experimentation, I was able to get my laptop’s power consumption under control. I’ll share my experience and the steps I took to achieve this.

Identifying the Problem

The first step was to identify the main power-hungry components of my laptop. I used the powertop tool to monitor my laptop’s power consumption in real-time. This tool provides a detailed breakdown of power usage by component, allowing me to pinpoint the areas that needed improvement.

[Read More]

Taming the Beast: My Favorite Aliases and Functions for Taming Long Commands in Bash

Introduction to Aliases and Functions

I’ve been using Linux for years, and one of the things that’s really helped me streamline my workflow is using aliases and functions in Bash. These tools let you simplify long commands, reducing typos and making your life easier. In this article, I’ll share some of my favorite aliases and functions for taming long commands in Bash.

Creating Aliases

Aliases are basically shortcuts for longer commands. You can create an alias using the alias command followed by the name of the alias and the command it should execute. For example:

[Read More]

Taming Background Tasks with Nohup and Systemd: A Homelab Lesson Learned

Introduction to Background Tasks

As someone who’s spent years running a homelab, I’ve found that managing background tasks is crucial. These tasks need to keep running even after I’ve logged out of my system, and they’re essential for things like backups, system monitoring, and maintenance scripts. I used to rely on screen and tmux to keep these tasks running, but I’ve recently switched to using nohup and systemd. In this article, I’ll share my experience with these tools and provide some practical examples.

[Read More]