El “motd” de Linux es un archivo que contiene un mensaje del día que se muestra a todos los usuarios que se conectan a la máquina por terminal.

Habitualmente se usa para dar información a estos usuarios acerca del estado del servidor o, simplemente, para dar los buenos días al acceder a la máquina.

Si estáis administrando servidores, es posible que os interese cambiar el mensaje del día y añadir uno que contenga información dinámica de estado del servidor o datos de la empresa alojadora o propietaria de los servidores. Este archivo os puede servir para ofrecer una imagen corporativa en los servidores que administráis para vuestros clientes.

Os voy a explicar paso a paso cómo crear y ofrecer un “motd” (mensaje del día) y cómo hacer para que sea lo primero que lean tus usuarios del servidor cada vez que accedan a un terminal de dicha máquina.

Paso 1

Para empezar, podemos observar el contenido por defecto del archivo “motd”

cat /etc/motd 

En principio, nos bastaría con modificar el texto de este archivo y añadir el contenido que nos apetezca. Una cabecera en ASCII, un dibujo en modo texto o alguna filigrana que se nos ocurra podría quedar estupendamente como mensaje del día.

En esta página web tenéis un conversor que os ayudará a crear banners y secuencias de texto ideales para scripts o para adornar cualquier código o mensaje en formato texto plano.

  _____        __                           _   _           
 |_   _|      / _|                         | | (_)          
   | |  _ __ | |_ ___  _ __ _ __ ___   __ _| |_ _  ___ __ _ 
   | | | '_ \|  _/ _ \| '__| '_ ` _ \ / _` | __| |/ __/ _` |
  _| |_| | | | || (_) | |  | | | | | | (_| | |_| | (_| (_| |
 |_____|_| |_|_| \___/|_|  |_| |_| |_|\__,_|\__|_|\___\__,_|
                                                            
                                                            
   _____          _           _       
  / ____|        | |         | |      
 | |     ___  ___| | __ _  __| | __ _ 
 | |    / _ \/ __| |/ _` |/ _` |/ _` |
 | |___| (_) \__ \ | (_| | (_| | (_| |
  \_____\___/|___/_|\__,_|\__,_|\__,_|
                                      
                                      

 

Paso 2

En ocasiones nos interesa mostrar la información de estado del servidor o insertar cierta información de contacto y soporte para que los clientes que tienen sus servidores con nosotros sepan con quién deben contactar  en caso de caídas o problemas con sus servidores. Para ello nada mejor que insertar un script en “/usr/local/bin” y llamarlo desde “/etc/profile”. El contenido de “profile” se aplica a todos los usuarios que acceden a la máquina.

Paso 3

El script “dynmotd” localizado en esta página web nos puede servir como base para crear nuestro propio “motd” dinámico.


#!/bin/bash

#
# Add this to /etc/profile
# example:
#    /usr/local/bin/dynmotd
# Don't forget to chmod +x it.
# Create /etc/motd-maint to track changes that need to be posted
#


EMAIL="jjasghar@gmail.com"
PROCCOUNT=`ps -Afl | wc -l`
PROCCOUNT=`expr $PROCCOUNT - 5`
NIC=eth0
IPADDY=`ifconfig $NIC | grep inet | awk -F " " '{print $2}' | grep -v :: | sed 's/addr://g'`
DATE=`date +%F`
EPOCH=`date +%s`
UPTIME=`uptime` # | sed 's/.*up ([^,]*), .*/1/'`
echo -e "
#################################################################################
WARNING:- YOU MUST HAVE PRIOR AUTHORIZATION TO ACCESS THIS SYSTEM. ALL 
CONNECTIONS ARE LOGGED AND MONITORED. BY CONNECTING TO THIS SYSTEM YOU FULLY
CONSENT TO ALL MONITORING. UN-AUTHORIZED ACCESS OR USE WILL BE PROSECUTED TO
THE FULL EXTENT OF LAW. YOU HAVE BEEN WARNED
#################################################################################
"
echo -e "
+++++++++++++++++++++++++++++++++: System Data :++++++++++++++++++++++++++++++++++
+ hostname = `hostname`
+ address  = $IPADDY
+ os type  = `uname -s`
+ kernel   = `uname -r`
+ uptime   = $UPTIME
++++++++++++++++++++++++++++++++: User Data :+++++++++++++++++++++++++++++++++++++
+ username  = `whoami`
+ processes = $PROCCOUNT of `ulimit -u` 
+++++++++++++++++++++++++++: Helpful Information :++++++++++++++++++++++++++++++++
+ admin = $EMAIL
+ date  = $DATE
+ epoch = $EPOCH
+++++++++++++++++++++++++: Maintenance Information :++++++++++++++++++++++++++++++
+ `cat /etc/motd-maint`
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
"

El archivo se explica por sí solo, es la ventaja del Creative Commons y el conocimiento compartido. En la cabecera del archivo puedes observar parte de las instrucciones que se deben ejecutar.

Así, copiamos este archivo con el nombre “dynmotd” en “/usr/local/bin” y le damos permisos de ejecución:

  • Con gedit o nano creamos el archivo con el contenido especificado más arriba.
  • Copiamos el archivo en “/usr/local/bin”
  • Editamos el archivo “/etc/profile” con gedit o nano (como superusuario)

Al final del archivo “/etc/profile” deberemos añadir la línea que llama al archivo “dynmotd”:

 /usr/local/bin/dynmotd 

Accedemos al directorio donde se encuentra “dynmotd” y le damos permisos de ejecución:

 cd /usr/local/bin
chmod +x dynmotd
dynmotd

El último comando te permite comprobar el resultado y saber si hay algún error en el script.

Ya tienes un flamante “Message Of The Day” dinámico para mostrar a los clientes y usuarios que se conectan a las máquinas que administras. La tarea es sencilla y el resultado es muy interesante:dynmotd

Este artículo, para variar, es Creative Commons. Copia, usa, modifica o haz lo que quieras con él. El script original está en “https://github.com/jjasghar/scripts/blob/master/dynmotd” y es CC también. La web generadora de ASCII es de uso libre.