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
   .<del>.   .</del>.               \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
   .<del>.   .</del>.
  '. \ ' ' / .'
   $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.

Guillaume

Ingénieur dans l'informatique passionné par la domotique, les nouvelles technologies, le Web et toutes les innovations dont ce dernier regorge.

Paris