This post is directed at Ubuntu and Debian server admins. As all work and no play makes Jack a dull boy, it is imperative that you immediately make your server more fun. If you do not get a little smile when you log into your server via SSH, then something is terribly wrong! Avoid dullness by all means.
Here I will show how to add and use figlet, fortune, cowsay and xmlstarlet to have big banners, random quotes’n’quips, talking cows and word of the day appear when using SSH to access your server.
FIGlet is a program for making large letters out of ordinary text.
FIGlet project: http://www.figlet.org/
Fortune is a simple program that displays a random message from a database of quotations.
Cowsay is a filter that takes text and displays a cow saying it.
Cowsay project page: http://www.nog.net/~tony/warez/cowsay.shtml
Cowsay article: http://linuxgazette.net/issue67/orr.html
XMLStarlet is a set of command line utilities (tools) which can be used to transform, query, validate, and edit XML documents and files using simple set of shell commands in similar way it is done for plain text files using UNIX grep, sed, awk, diff, patch, join, etc commands.
XMLSartlet project page: http://xmlstar.sourceforge.net/overview.php
Adding Universe and Multiverse Repository in Ubuntu
These packages are in the Universe and Multiverse repositories. If you need to add these repositories, just un-remark the pertinent lines in /etc/apt/sources.list and run aptitude update:
First, make a backup of the original /etc/apt/sources.list file.
sudo cp /etc/apt/sources.list /etc/apt/sources.list.original
sudo vi /etc/apt/sources.list
Un-remark the universe and multiverse lines (remove the leading # character) so the lines look something like this:
deb http://us.archive.ubuntu.com/ubuntu/ lucid universe deb-src http://us.archive.ubuntu.com/ubuntu/ lucid universe deb http://us.archive.ubuntu.com/ubuntu/ lucid-updates universe deb-src http://us.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb http://us.archive.ubuntu.com/ubuntu/ lucid multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ lucid multiverse deb http://us.archive.ubuntu.com/ubuntu/ lucid-updates multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
Finish by retrieving the updated package lists to your system with:
sudo aptitude update
By the way, to search for packages in the Ubuntu packages repositories, visit:
Figlet creates character graphic block letter banners. Thus:
___ ___ ____ ___ ___ ____/ (_)___ |__ \ / __ `__ \/ _ \/ __ / / __ `/_/ / / / / / / / __/ /_/ / / /_/ / __/ /_/ /_/ /_/\___/\__,_/_/\__,_/____/
On an Unbuntu/Debian system, install figlet like this:
sudo aptitude install figlet
The following will create the media2 banner, as above:
figlet -f slant media2
Modifying Message of the Day
Once you are satisfied with the output of figlet, you can have your character graphics banner appear whenever a user uses SSH to access the server, just modify the /etc/motd.tail file with:
sudo figlet -f slant media2 >>/etc/motd.tail
Bingo, whenever a user logs into the media2 server then will see your nifty banner! A little dullness have been bannished.
Installing xmlstarlet, cowsay and fortune
These are the commands we’ll be using to offer some fresh content on every login.
sudo aptitude install xmlstarlet cowsay fortune
Putting it all together
Modify the /etc/bash.bashrc file. This affects all users that use bash as their default shell.
fortune -a | cowsay -f $(ls /usr/share/cowsay/cows/ | shuf | head -n1) echo -n "word of the day: " /usr/bin/xmlstarlet sel --net -t -m "/rss/channel/item/description" -v "." "http://dictionary.reference.com/wordoftheday/wotd.rss"
The fortune command pops out a random quip, piped into cowsay, which is configured here with -f to use a random character graphic image. Then, word of the day is sourced from an RSS feed with xmlstarlet.
With everything, here is an example of what will appear when your SSH into your server:
Linux ijuki 2.6.32-x86_64-somewhere #1 SMP Sat Dec 5 16:55:26 UTC 2009 x86_64 ___ ___ ____ ___ ___ ____/ (_)___ |__ \ / __ `__ \/ _ \/ __ / / __ `/_/ / / / / / / / __/ /_/ / / /_/ / __/ /_/ /_/ /_/\___/\__,_/_/\__,_/____/ Last login: Sun May 2 18:39:14 2010 from 00.000.000.000 ________________________________________ / Everything that you know is wrong, but \ \ you can be straightened out. / ---------------------------------------- \ ____ \ / \ | ^__^ | | (oo) |______ | (__) | )\/\ \____/|----w | || || Moofasa word of the day: sesquipedalianism: given to using long words.