If you have ever used Ubuntu Server prior to its newest release of 16.04, then you should be familiar with the dynamic MOTD. Previously, this is what is presented to the user in terminal when a log on occurs.



This feature is very nice as it will give you a quick look at useful information. Unfortunately, Ubuntu Server 16.04 does not include the dynamic MOTD by default in this release. First you will need to install some prerequisites and build the directory structure. To do so, run the following commands in terminal.

# install lsb-release apt-get install lsb-release # install figlet to enable ASCII art apt-get install figlet # install update-motd software apt-get install update-motd # delete default directory rm -r /etc/update-motd.d/ # create new directory mkdir /etc/update-motd.d/ # create dynamic files touch /etc/update-motd.d/00-header ; touch /etc/update-motd.d/10-sysinfo ; touch /etc/update-motd.d/90-footer # make files executable chmod +x /etc/update-motd.d/* # remove MOTD file rm /etc/motd.dynamic

Once the above commands have been run, you can move on to populating the files you created. Below you can copy and paste.

Header ( 00-header )

#!/bin/sh # # 00-header - create the header of the MOTD # Copyright (c) 2013 Nick Charlton # Copyright (c) 2009-2010 Canonical Ltd. # # Authors: Nick Charlton <hello@nickcharlton.net> # Dustin Kirkland <kirkland@canonical.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. [ -r /etc/lsb-release ] && . /etc/lsb-release if [ -z "$DISTRIB_DESCRIPTION" ] && [ -x /usr/bin/lsb_release ]; then # Fall back to using the very slow lsb_release utility DISTRIB_DESCRIPTION=$(lsb_release -s -d) fi figlet $(hostname) printf "

" printf "Welcome to %s (%s).

" "$DISTRIB_DESCRIPTION" "$(uname -r)" printf "

"

System Information ( 10-sysinfo )

#!/bin/bash # # 10-sysinfo - generate the system information # Copyright (c) 2013 Nick Charlton # # Authors: Nick Charlton <hello@nickcharlton.net> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. date=`date` load=`cat /proc/loadavg | awk '{print $1}'` root_usage=`df -h / | awk '/\// {print $(NF-1)}'` memory_usage=`free -m | awk '/Mem:/ { printf("%3.1f%%", $3/$2*100) }'` swap_usage=`free -m | awk '/Swap:/ { printf("%3.1f%%", $3/$2*100) }'` users=`users | wc -w` time=`uptime | grep -ohe 'up .*' | sed 's/,/\ hours/g' | awk '{ printf $2" "$3 }'` processes=`ps aux | wc -l` ip=`ifconfig $(route | grep default | awk '{ print $8 }') | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'` echo "System information as of: $date" echo printf "System Load:\t%s\tIP Address:\t%s

" $load $ip printf "Memory Usage:\t%s\tSystem Uptime:\t%s

" $memory_usage "$time" printf "Usage On /:\t%s\tSwap Usage:\t%s

" $root_usage $swap_usage printf "Local Users:\t%s\tProcesses:\t%s

" $users $processes echo /usr/lib/update-notifier/update-motd-reboot-required /usr/lib/update-notifier/apt-check --human-readable echo

#!/bin/sh # # 99-footer - write the admin's footer to the MOTD # Copyright (c) 2013 Nick Charlton # Copyright (c) 2009-2010 Canonical Ltd. # # Authors: Nick Charlton <hello@nickcharlton.net> # Dustin Kirkland <kirkland@canonical.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. [ -f /etc/motd.tail ] && cat /etc/motd.tail || true

Once these files are populated with the above, you should now be able to logout and then log back in either using putty or on the console and you will be presented with something that looks like below.