Replacing cron with systemd timer

Well, I don’t currently really have a good reason to replace a working cron job with systemd-timer beside practicing it. The following is the existing cron task for www-data user. I want to convert this cron to a systemd-timer: $ sudo crontab -l -u www-data # m h dom mon dow command */5 * * * * php -f /var/www/nextcloud/cron.php The above output indicates that the command php -f /var/www/nextcloud/cron.php is run at every 5th minute, of course by www-data user....

September 3, 2024 · 3 min · 428 words · kenno

Upgrading Longhorn with Helm

For my test Kubernetes cluster, Longhorn is used as the persistent block storage. The installed version is 1.6.2, and the version 1.7.0 is available now. So today, I’m going to share how to perform the Longhorn upgrade using Helm. I’m going to try to do this live as usual. Of course, I already created snapshots for all my K8s nodes in case thing goes south. First, let’s verify the current installed version of Longhorn [1]....

August 23, 2024 · 4 min · 647 words · kenno

How to rebuild initramfs on Fedora

Earlier today while performing the update on my Fedora desktop, I encountered an issue with the new kernel update. As a result, the initramfs was not generated for the new installed kernel. So, I’ll share with you how to rebuild or generate the initramfs while fixing real issue on my Fedora workstation. First, here is an output showing the source of the issue. It might not be clear of what’s going on, but that’s okay as it’s not the main focus of this blog post....

August 21, 2024 · 5 min · 1000 words · kenno

Process Life Cycle

A short while back, I had to do a revision about process life cycle in the operating system, Linux specifically. Last time that I had to learn about this topic was back in the good old days in college. I don’t know when I need to review it again, so I think it’s a good idea to dump what I’ve learned including the references to this topic. Also, I will only focus mainly on the 5-state model....

August 3, 2024 · 2 min · 372 words · kenno

Snapshot of LVM logical volume - a brief howto

Recently, after an OS updated and rebooted, I was not able to login to the desktop environment. When that happened, I thought to myself, “I wish I could just do a quick EBS snapshot like I would on the cloud before running any OS updates.” On my Linux desktop, the root volume is an LVM volume, I knew that snapshot was possible, but never tried to create one before. A friend at work encouraged that I should make use of it, and it was not that hard to get started....

July 26, 2024 · 3 min · 491 words · kenno

Systemctl cat is cool

Sometimes we want to see the content of a Systemd unit file. One obvious way to do it is to just cat/vim the content of the unit file directly. For example, to display the content of systemd-tmpfiles-clean.timer, we can perform the following step: ➜ systemctl status systemd-tmpfiles-clean.timer | grep Loaded Loaded: loaded (/usr/lib/systemd/system/systemd-tmpfiles-clean.timer; static) ➜ cat /usr/lib/systemd/system/systemd-tmpfiles-clean.timer; # SPDX-License-Identifier: LGPL-2.1-or-later # # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2....

July 20, 2024 · 2 min · 306 words · kenno

SELinux revision note

Today, I decided to have a quick revision on SELinux as it’s been a long while that I worked on any projects that required my attention to fiddling with SELinux. While I was looking for an sealert in /var/log/messages on my Fedora based desktop, I found a real issue that I need to fix. Like most of my blog posts, I’d like to start writing the post while I was about to solve the issue....

July 20, 2024 · 3 min · 510 words · kenno

How to test UDP port connectivity

Earlier today, I have a need to check for a UDP opening port on a remote Linux server. And I felt blank in my brain, like I never done this before. Then I remember with TCP, I could use nc command to check it. Something like: ➜ nc -vz opnsense 22 Ncat: Version 7.92 ( https://nmap.org/ncat ) Ncat: Connection to 2400:a888:333:0:222:ffff:fe54:67de failed: TIMEOUT. Ncat: Trying next address... Ncat: Connection to 192....

July 17, 2024 · 3 min · 495 words · kenno

Axum custom request extractor and validator using FromRequest

This post documents what I learned about creating custom Axum extractor which can be used with the validator for validation. Create a new test project: ➜ cargo new request-validator cd request-validator The first crate to be added is axum for Axum framework. request-validator on  main [?] via 🦀 v1.79.0 ➜ cargo add axum Updating crates.io index Adding axum v0.7.5 to dependencies Features: + form + http1 + json + matched-path + original-uri + query + tokio + tower-log + tracing - __private_docs - http2 - macros - multipart - ws Updating crates....

July 12, 2024 · 5 min · 988 words · kenno

How to force kill a Podman container

There is a container that I cannot stop. TL;DR the solution that worked for me was rebooting the host system. Anyhow, I’ll share the troubleshooting steps that did not work. ❯ podman stop semaphore-postgres WARN[0010] StopSignal SIGINT failed to stop container semaphore-postgres in 10 seconds, resorting to SIGKILL Error: given PID did not die within timeout ❯ podman ps -a | grep semaphore-postgres a688a42c4c15 docker.io/library/postgres:16 postgres 17 minutes ago Stopping 0....

July 7, 2024 · 2 min · 305 words · kenno