Featured »

September 9, 2021 – 11:28 am

Cron is an indispensable tool for system administration. The difficulties in working with cron in a large environment stem from its decentralized nature. Cron jobs multiply like rabbits, and keeping track of them is not …

Read the full story »
Networking

Unix and Linux network configuration. Multiple network interfaces. Bridged NICs. High-availability network configurations.

Applications

Reviews of latest Unix and Linux software. Helpful tips for application support admins. Automating application support.

Data

Disk partitioning, filesystems, directories, and files. Volume management, logical volumes, HA filesystems. Backups and disaster recovery.

Monitoring

Distributed server monitoring. Server performance and capacity planning. Monitoring applications, network status and user activity.

Commands & Shells

Cool Unix shell commands and options. Command-line tools and application. Things every Unix sysadmin needs to know.

Home » Archive by Category

Articles in Commands & Shells

Generating Random Text Files for Testing

September 16, 2021 – 11:31 am
91ebozy1e3b138waujy28agrngy[1]

Sometimes you need dummy folder structures populated with random data for testing your various scripts and processes – backups, file transfers, encryption, compression, etc. Every time I need something like this, I end up writing …

Finding Cron Jobs

September 9, 2021 – 11:28 am
iwoau71okwxqh4jv3k4ook32qps[1]

Cron is an indispensable tool for system administration. The difficulties in working with cron in a large environment stem from its decentralized nature. Cron jobs multiply like rabbits, and keeping track of them is not …

Renaming Files with exiftool

September 2, 2021 – 11:25 am
b8g72yca7casi5shj7otypjbi20[1]

Recently I exported a whole bunch of files from Lightroom to a NAS share and filenames like 2E570434-67B7E0489CA2-39354-000017CF24DD8ACD.jpg are not very informative. It would’ve been nice if the filename contained some useful information like date, …

IP Geolocation from Shell

August 25, 2021 – 11:23 am
af1bc14559a18ce803edf27dd4638734[1]

A handy utility by Rafael Rinaldi called whereami allows you to geolocate an IP address directly from the command line. Here are some quick notes on installing and using this tool.

Approximate String Matching

August 18, 2021 – 11:15 am
IMG_6210-scaled[1]

On occasion I find myself searching for something in log files or in my Bash history, but I can’t quite remember what it is that I am looking for. Come to think of it, this …

Bulk Create Linux Users using Salt

October 9, 2020 – 1:48 pm
l5km2qq7sz7bbvg5pra24eygsdp-2[1]

Recently I ran into a situation where hundreds of VMs recently built via OpenShift/Ansible automation were missing an important local user account used for security audits. While our automation guys were working on tracking down …

Coronavirus Stats in Bash

October 7, 2020 – 1:40 pm
IMG_5435[1]

The result of my morbid fascination with the coronavirus situation is this quick bash script that parses Johns Hopkins University coronavirus data to generate a quick report for the current date for the specified countries.

Updating Lynis

October 6, 2020 – 8:22 am
IMG_5427

Lynis is an excellent security audit tool for Linux and various Unix derivatives. I have a small wrapper script that runs Lynis via a cron job, does a selective diff with the previous run’s output, …

Convert Code Snippets to PNG

October 4, 2020 – 8:19 am
2apzqxrvorckslw14x029ua67ku

On occasion I find myself struggling posting code on discussion forums that don’t handle code formatting all that well. What would’ve helped is some quick and easy way to convert code to an image file …

Appending Filenames

December 22, 2019 – 9:51 pm
gk5arsj5ijgmshcbh73vvpkdh2k[1]

If you google how to append, say, current timestamp to the filename in Bash, almost every suggestion boils down to something really basic along the lines of mv $somefile $somefile_$(date +’Y%-%m-%d’). Technically, this is correct …

Verifying SNMP Connectivity on Multiple Hosts

December 19, 2019 – 9:50 pm
Photo-2019-10-07-14-39-03_0266[1]

I needed to check if SNMP was accessible on whatever live servers that existed in a particular subnet. Here’s a quick script to do this.

Selecting Time Ranges from Logs, Part 2

December 16, 2019 – 9:47 pm
4bbqfrqoa4vxlgrr02pg883ozks[1]

A couple of years ago I wrote an article about selecting specific time ranges from log files. I proposed two options: either convert all timestamps to epoch format (a CPU-intensive process) or rely on regex …

Bulk-Adding IPTables Rules

December 12, 2019 – 9:46 pm
b3gk9tc9x14ki5xa4bx8c4v1b66[1]

I’ve been using my mod of this handy script to block countries with iptables. One issue with the script is that it is adding rules one-by-one using the iptables -A syntax. This is the proper …

Detecting Blurry Photos with ImageMagick

December 3, 2019 – 9:43 pm
ll7je7yy7kvxsiw8ibssm0nmqf0-2[1]

Here’s a typical scenario: I go to a birthday party where everyone knows I’m a shutterbug, so I have to bring my camera. As time goes by and blood alcohol concentration rises and attention to …

Working with iptables Logging

November 30, 2019 – 9:41 pm
gpxvtms6cvea4q504jtbxjfwcd5z-2[1]

Most commonly iptables is used to allow, block, or redirect connections. However, it also has a logging feature that can be very useful for network traffic analysis and system security.

CD/DVD-to-ISO Helper Script

November 27, 2019 – 9:39 pm
IMG_4678[1]

I can’t recall the last time I needed to convert a CD to ISO. I have four laptops and not one even has a DVD drive. It took me a while to find an external …

Analyzing Network Performance

November 25, 2019 – 9:37 pm
gly8stqifn615gp3xbc34h64byx-2[1]

Much of network performance analysis will be comparative in nature. Thus, seeing the output of multiple commands side by side can be quite useful. Bash has a useful little utility called pr and we’ll make …

Copying Data in a Restricted Environment

August 17, 2019 – 8:04 pm
o42ex2ebr1lhz7wxo84scrr9iuu

Consider this not-so-hypothetical scenario: you have some data on server_a that you would like to copy to server_b. Unfortunately, these two servers cannot communicate with each other. Nor do they have access to any common …

IMDb Movie Title Parser in Bash

July 12, 2019 – 7:19 pm
42out6dayezwo4ntrduw5udzq0k-2

This is an update to the IMDb parser I wrote years back. From time to time IMDb makes small changes to their setup that break my script. This time they decided to start blocking curl, …

Squeezing Video Files

June 30, 2019 – 11:16 am
sqsb8tfjfhkyxgnmnq8dqzdbbdm

All that crap I’ve been saving from YouTube, Facebook and whatnot tends to add up. As quality is not a huge concern here (not that it was very high to begin with), optimizing those video …

Adding and Removing sshd instances on CentOS 7

June 20, 2019 – 11:09 am
gtmwo2mvag6419w36e4wqir67iu

As a follow-up to my previous post about adding sshd instances on CentOS 5 & 6, here’s a script that does the same on RHEL/CentOS 7.

Adding and Removing sshd instances on CentOS 6

April 20, 2019 – 8:24 pm
Photo-2019-03-25-20-44-06_2465

This is a process and a couple of script to allow you to setup an additional sshd service on an alternate port.