Personnaliser votre message de connexion SSH

Lorsque vous vous connectez au Raspberry en SSH ou bien en ouvrant un terminal sous X vous avez la possibilité d’afficher un message particulier dont le contenu se situe dans le fichier /etc/motd.

Raspberry MOTD

Nous allons modifier ce message pour obtenir un contenu personnalisé, plus graphique, et avec des informations qui vous seront utiles.

MOTD personnalisé 2

Pour commencer, il faut créer un script dans l'arborescence /home/pi (par exemple) avec la commande vi /home/pi/update_motd.sh) et y mettre le contenu suivant :

#! /bin/sh
upSeconds=`/usr/bin/cut -d. -f1 /proc/uptime`
secs=$(($upSeconds%60))
mins=$(($upSeconds/60%60))
hours=$(($upSeconds/3600%24))
days=$(($upSeconds/86400))
UPTIME=`printf "%d days, %02dh %02dm %02ds " "$days" "$hours" "$mins" "$secs"`

echo "\033[0;32m
   .~~.   .~~.               \033[0;37m`date +"%A, %e %B %Y, %R"`\033[0;32m
  '. \ ' ' / .'              \033[0;37m`uname -srmo`\033[0;31m
   .~ .~~~..~.               \033[0;37m\033[0;31m
  : .~.'~'.~. :              \033[0;37mUptime.............: $UPTIME\033[0;31m
 ~ (   ) (   ) ~             \033[0;37mMemory.............: $((`cat /proc/meminfo | grep MemFree | awk {'print $2'}`/1024))MB (Free) / $((`cat /proc/meminfo | grep MemTotal | awk {'print $2'}`/1024))MB (Total)\033[0;31m
( : '~'.~.'~' : )            \033[0;37mRunning Processes..: `ps ax | wc -l | tr -d " "`\033[0;31m
 ~ .~ (   ) ~. ~             \033[0;37m\033[0;31m
  (  : '~' :  )              \033[0;37mIP Addresses.......: `/sbin/ifconfig | /bin/grep "Bcast:" | /usr/bin/cut -d ":" -f 2 | /usr/bin/cut -d " " -f 1` / `wget -q -O - http://icanhazip.com/ | tail`\033[0;31m
   '~ .~~~. ~'               \033[0;37mTemperature........: `vcgencmd measure_temp | sed "s/temp=//"`\033[0;31m
       '~'                   \033[0;37m" > /etc/motd

Le script va écrire dans le fichier /etc/motd.

Il faut ensuite mettre en place une actualisation du fichier /etc/motd. Pour ma part, j'ai choisi de lancer le script à chaque connexion sur mon Raspberry Pi, les informations seront donc mises à jour à chaque ouverture de terminal.

Pour cela, éditez le fichier profile (vi /etc/profile) et ajoutez la ligne suivante à la fin :

sh /home/pi/update_motd.sh

Pour avoir le rendu suivant :

Raspberry MOTD personnalisé

Il vous faudra mettre le contenu qui suit dans le script /home/pi/update_motd.sh :

#! /bin/sh

VERT="\\033[1;32m"
NORMAL="\\033[0;39m"
ROUGE="\\033[0;31m"
ROSE="\\033[1;35m"
BLEU="\\033[1;34m"
BLANC="\\033[0;02m"
BLANCLAIR="\\033[1;08m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"

upSeconds=`/usr/bin/cut -d. -f1 /proc/uptime`
secs=$(($upSeconds%60))
mins=$(($upSeconds/60%60))
hours=$(($upSeconds/3600%24))
days=$(($upSeconds/86400))
UPTIME=`printf "%d days, %02dh %02dm %02ds " "$days" "$hours" "$mins" "$secs"`

tmp_size=`df -h /tmp | awk '{ a = $2 } END { print a }'`
tmp_used=`df -h /tmp | awk '{ b = $3 } END { print b }'`
tmp=`df /tmp | awk '{ c = $5 } END { print c }'`

root_size=`df -h / | awk '{ a = $2 } END { print a }'`
root_used=`df -h / | awk '{ b = $3 } END { print b }'`
root=`df / | awk '{ c = $5 } END { print c }'`

echo "$VERT
   .~~.   .~~.
  '. \ ' ' / .'
   $ROUGE.~ .~~~..~.
  : .~.'~'.~. :
 ~ (   ) (   ) ~
( : '~'.~.'~' : )
 ~ .~ (   ) ~. ~
  (  : '~' :  )
   '~ .~~~. ~'
	   '~'

$ROSE------------------------------------------------------------------$BLANC
$VERT Informations :$BLANC
- Hostname      = $JAUNE `hostname -s` $BLANC 
- @ IP          = $JAUNE `/sbin/ifconfig | /bin/grep "Bcast:" | /usr/bin/cut -d ":" -f 2 | /usr/bin/cut -d " " -f 1` $BLANC/$JAUNE `wget -q -O - http://icanhazip.com/ | tail`$BLANC
- Date          =  `date`
$ROSE------------------------------------------------------------------$BLANC
$VERT Système : $BLANC 
- Version OS    =  `lsb_release -ds`
- Kernel        =  `uname -or`
- Uptime        =  $UPTIME
- Température   =  `vcgencmd measure_temp | sed "s/temp=//"`
$ROSE------------------------------------------------------------------$BLANC
$VERT Charge : $BLANC 
- Load Averages =  `cat /proc/loadavg`
- Processus     =  `ps ax | wc -l | tr -d " "`
- Mémoire       =  $((`cat /proc/meminfo | grep MemFree | awk {'print $2'}`/1024))MB (Free) / $((`cat /proc/meminfo | grep MemTotal | awk {'print $2'}`/1024))MB (Total)
$ROSE------------------------------------------------------------------$BLANC
$VERT Disques : $BLANC 
- Utilisation de /      = $root ($root_used/$root_size)
- Utilisation de /tmp   = $tmp ($tmp_used/$tmp_size)
$BLANC" > /etc/motd

Voilà, libre à vous maintenant de personnaliser votre message de connexion SSH.