Valentine’s Day Tutorial for the Linux Administrator in Your Life

As you may or may not have guessed from the ‘rm -rf /’ picture in the header for the page, I do a lot of work with Linux in my job. Linux can be very divisive. People who are familiar with it think it is great, to the point of saying it’s better than Windows and installing it on home computers using dual boot partitions (because you have to suffer through Windows to play computer games, am I right people?). The people who aren’t familiar with Linux find the learning curve frustrating.

I fall into the crowd who like Linux because I know how to use it. But there are other things I don’t know how to use quite as well, because of the learning curve. Since it’s Valentine’s Day this week, the subject of relationships comes up as something that’s not ultimately logical.

But what if it is? What if it’s just as simple as using Linux if you know what you’re doing? Let’s take a look. If you have a *nix-fluent significant other, maybe share the procedure with them to see if they can adapt this for themselves.

Getting Started

First of all, you need to be super-user to start any of this:

$ su
Password:

Next, you need to see if the package is installed

# rpm -qa | grep -i romance
#

Don’t worry, it didn’t come pre-installed for me either. So now we have to go get it, which isn’t as hard as Cosmopolitan would have us believe:

# yum search romance
romance.i386 : Utilities for having a happy Valentine’s day
# yum install romance
Resolving Dependencies
Install 2 Package(s)
Is this ok [y/N]: y
Package(s) data still to download: 3.0 M
(1/2): romance-2.4.6.8.i386.rpm | 2.8 MB 00:11
(2/2): romance-libs-2.4.6.8.i386.rpm | 203 kB 00:00
——————————————————————
Total 241 kB/s | 3.0 MB 00:12
Running Transaction
Installing : romance-2.4.6.8.i386.rpm      1/2
Installing : romance-libs-2.4.6.8.i386.rpm 2/2
Complete!

Now, how do we use it?

Most Linux users will tell you to check for the manual pages. Now you may or may not have known that this service didn’t have a man page:

# man woman
No manual entry for woman

But this one does…

# man romance
NAME
romance – keep love alive
SYNOPSIS
romance <significant other>[-f <flower>][-c][-t <animal>][-j <#>][-m <movie>][-M][-nc][-d <restaurant>][-q][-s][-w]
DESCRIPTION
romance is a cli utility to be used to keep love alive. It consists of several options that could be useful to you in preventing a relationship kernel panic due to a race condition that occurs on 2/14 of every year. It also comes with a daemon that will invoke this command at periodic intervals allowing you to automate the process. Running the binary with no options will be wrong, but the system may or may not tell you why.
OPTIONS
-f Give a bouquet of type <flower> to <significant other>
-c Give a box of chocolate to <significant other>
-t Give a stuffed version of <animal> wearing a t-shirt covered in hearts to <significant other>
-j Give jewelry of value # in USD to <significant other>. Note that this will cause a large increase in resource consumption, so check for available resources before invoking this option. Should not be used at the same time as -M.
-m Take <significant other> to a movie. Potential options are ‘romcom|comedy|action|deadpool|50shades’ Check documentation of for the proper option. Using the incorrect option here (especially the 50shades option) may trigger a kernel panic.
-M Give <significant other> a bag full of money with the ‘$’ symbol on the outside. Should not be used at the same time as -j.
-nc Turn on TV and attempt ‘Netflix and Chill’ protocol
-d Take <significant other> out to a quiet dinner at <restaurant>
-q Spend quality time at home with <significant other>. Note that this option does not work with the ‘-nc’ flag.
-s Invoke ‘sexytime’ protocol with <significant other>. Should not be listed as the first option unless specifically requested by <significant other>.
-w Unknown. This has never been tried.

Ok, so let’s make sure the binary is actually there:

# which romance
/usr/bin/which: no romance in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

Ok, that adds a layer of complication. So let’s try and find it…

# find / -name romance
/tmp/zzyzx/youdneverlookhere/bin/romance

Not where I expected it to install, but I can work with this…

# PATH=$PATH:/tmp/zzyzx/youdneverlookhere/bin
# which romance
/tmp/zzyzx/youdneverlookhere/bin/romance

Alright, let’s see if it works:


# romance
Alert: Permissions are incorrect for file ‘romance’. Run the following commands to create proper permissions:
chown significant_other:woman `which romance`
chmod 571 `which romance`
# ls -l `which romance`
-r-xrwx–x 1 significant_other women 85060 Feb 12 20xx /tmp/zzyzx/youdneverlookhere/bin

So only women can change the source code, and I can’t even see it? No time for complaining now…

# romance Nessa -c -d Harvest -q -s
Error: service ‘romanced’ not started.
Exit 1

Could it be that simple?

# service romanced start
Starting romance service: [ OK ]
# romance Nessa -c -d Harvest -q -s
Process running…result: Success! You had a decent Valentine’s day. Recommend you use the -w option for next year.
Exit 0

What? There’s no documentation on that. It can’t hurt, let’s give it a try.

# romance Nessa -w
This command will ask ‘Nessa’ what she wants for Valentine’s Day. Press ENTER to proceed.
Working…’Nessa’ will have to think about it, but is happy you asked. She will reply to your query in 360 days.
Exit 0

Ah, so that’s the secret then…asking her what she wants! I’ll have to remember this for next time. I should also make sure this service stays running just in case…

chkconfig romanced on

I should probably make sure I don’t wait until the last minute next time:

echo “0 18 * * 5 /tmp/zzyzx/youdneverlookhere/bin/romance Nessa -d Anywhere # Date Night” >> /etc/crontab
echo “0 20 * * * /tmp/zzyzx/youdneverlookhere/bin/romance Nessa -q # How was your day” >> /etc/crontab

Here’s hoping some scheduled maintenance prevents an outage!
via GIPHY

Tags: geek love, Linux, Linux administrator, Valentine's Day

Related Posts

by
Previous Post Next Post

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 shares