Fancy message of the day over SSH
Since my time to sit down for a good chunk of time and write some code has been extremely limited as of late, I've been playing around with a few smaller projects. One of those is a fancy message of the day when you log into a remote machine (in my case the server this website is hosted on!), and I thought I'd share it here.

The default message shown at the top when you login via ssh is actually generated by something called update-motd, and is generated from a set of scripts in /etc/update-motd.d. By customising these scripts, we can do almost anything we like!
To start off with, I disabled the execution of all the scripts in the directory (sudo chmod -x /etc/update-motd.d/*), and created a subfolder to store the script in that actually generated the system information (sudo mkdir /etc/update-motd.d/parts). Here's the script I wrote to generate the system information:
#!/usr/bin/env bash
. /etc/lsb-release
LOAD=$(cat /proc/loadavg | cut -d' ' -f 2);
CPU_COUNT=$(cat /proc/cpuinfo | grep -i "core id" | uniq | wc -l);
THREAD_COUNT=$(cat /proc/cpuinfo | grep -i "core id" | wc -l);
APT_UPDATE_DETAILS="$(/usr/lib/update-notifier/apt-check --human-readable | fold -w 40 -s)"
IPV4_ADDRESS=$(dig +short myip.opendns.com A @resolver1.opendns.com)
IPV6_ADDRESS=$(dig +short myip.opendns.com AAAA @2620:0:ccc::2);
LAST_LOGIN=$(last -1 | head -n 1 | awk '{ print $1,"at",$4,$5,$6,$7,"from",$3 }');
REBOOT_REQUIRED=$(/usr/lib/update-notifier/update-motd-reboot-required);
echo
echo Welcome to $(hostname)
echo " running ${DISTRIB_DESCRIPTION}"
echo
echo Kernel: $(uname -r)
echo Uptime: $(uptime --pretty | sed -e 's/up //')
echo Load: ${LOAD}
echo
echo IPs: ${IPV4_ADDRESS}, ${IPV6_ADDRESS}
echo
echo "${APT_UPDATE_DETAILS}"
echo
echo "${REBOOT_REQUIRED}"
#echo
#echo Last login: ${LAST_LOGIN}
exit 0
Basically, I collect a bunch of information from random places on my system (several of which were taken from the existing scripts in /etc/update-motd.d/) and re-output them in a different format.
Then, I converted an image of my favicon logo with the brilliant catimg by posva to a set of unicode characters and sent that to a file (catimg -w 35 image.png >/etc/update-motd.d/sbrl-logo.txt) - you could alternatively use some ascii art from the internet (e.g. this site). Once done, I put the two together with the following script directly in my /etc/update-motd.d/ folder:
#!/usr/bin/env bash
### Settings ###
TMP_FILENAME=/run/sysinfo.txt
#/etc/update-motd.d/parts/sysinfo
################
/etc/update-motd.d/parts/sysinfo >$TMP_FILENAME
### Output ###
echo
pr -mtJ /etc/update-motd.d/sbrl-logo.txt $TMP_FILENAME
##############
### Cleanup ###
rm $TMP_FILENAME
###############
Finally, I manually cleared and regenerated the message of of the day with sudo update-motd, giving the result you see at the top of this blog post. I also made sure to re-enable the execution of the other scripts I didn't use in my fancy motd so as to not miss out on their notifications.
If you're interested, I've generated an archive of my final /etc/update-motd.d folder (minus my logo in text format), which you can find here: 20170203-Fancy-Motd.7z.
Can you do better? Got a cool enhancement of your own? Post about it below!
Reddit
Just recently 

