vendredi 2 novembre 2012

Installation d'un micro-serveur, part 2: FANCY

Hello tout le monde,

Bon, ce n'est sans doute pas la partie le plus cruciale de ce microserveur... mais quand on est Geek, on l'est aussi pour se faire plaisir :)

Alors, voici comment se faire un beau message d'accueil lors de la connexion au serveur (en SSH par exemple).


Trouver un beau logo :)

(Merci à Michauko pour le court, mais sympathique article sur linuxlogo :))
Pour rester dans l'esprit "Geek", un bon moyen de trouver un logo d'ouverture de session, est d'utiliser le package linuxlogo qui permet de générer dans un terminal la plupart des logos des distributions usuelles.

  • aptitude install linuxlogo pour installer le package
  • linuxlogo -L list pour lister l'ensemble des logos disponibles
  • linuxlogo -L xx, avec xx le numéro ou le nom du logo pour l'afficher
  • Une fois le logo choisi, on peut "figer" la configuration en éditant le fichier /etc/linux_logo.conf
  • Pour afficher le logo, il suffit alors d'exécuter linux_logo dans la ligne de commande.
  • Si on voulait l'afficher à chaque connexion, il suffirait de rajouter la ligne linux_logo à la fin du fichier /etc/profile.

Transférer ce logo dans le MOTD

MOTD, c'est le "Message of the Day".
Ce message est défini par le fichier /etc/motd.
Pour copier le logo précédent dans le motd, il suffit de faire linux_logo > /etc/motd pour copie la sortie écran de linux_logo dans le fichier /etc/motd.


Rendre le logo dynamique

(Merci à Parker Samp pour l'astuce !)

Ce logo est bien sympathique... mais les informations qu'il affiche n'étaient valable que lors du moment où il a été généré. L'uptime notamment, ne sera vraisemblablement pas correct la prochaine fois que vous vous loggerez.

Création d'un script

Première étape pour rendre ce logo dynamique, créer le script suivant, par exemple dans /usr/local/bin/ :

#!/bin/bash

echo -e "

-> Insérer ici le contenu du fichier /etc/motd

"

Pensez à rendre le script exécutable en faisant un chmod a+x nom_du_script

Insertion des variables

Seconde étape, remplacer les textes qui étaient "figés" dans le fichier /etc/motd par des variables dont le contenu sera calculé lors de l'exécution du script.

En ce qui me concerne, je "calcule" les variables suivantes lors de l'exécution du script:


# Version de Linux installée
VERSION=`cat /proc/version | sed 's/\([azAZ09\.]*\)(.*) .*/\1/'`
# Date de compilation du Linux
COMPILE=`cat /proc/version | sed 's/.*\((.*)\) \(.*\)/\2/'`
# Nombre de processeurs
CPU_NB=`grep -c processor /proc/cpuinfo`
# Type de processeur
CPU_TYPE=`cat /proc/cpuinfo | grep "model name" | awk -F ":" {'print $2'} | head -n 1`
# Fréquence des processeurs
CPU_FREQ=`cat /proc/cpuinfo | grep "cpu MHz" | awk -F ":" {'print $2'} | head -n 1`
# Mémoire totale du serveur
TOTALMEM=`cat /proc/meminfo | grep MemTotal | awk {'print $2'}`
TOTALMEM=`expr $TOTALMEM / 1024`
# Mémoire disponible
FREEMEM=`cat /proc/meminfo | grep MemFree | awk {'print $2'}`
FREEMEM=`expr $FREEMEM / 1024`
# Charge processeur pour les 1, 5 et 15 dernières minutes
LOAD=`uptime | sed 's/.*average: \(.*\)/\1/'`
# Uptime
UPTIME=`uptime | sed 's/.*up \([^,]*\), .*/\1/'`
# Hostname
HOSTNAME=`hostname`

Exécution du script à chaque connexion au serveur

Avant tout chose, il faut désactiver l'affichage du MOTD:
  • Dans /etc/ssh/sshd_config, configurer le paramètre PrintMotd sur no
  • Redémarrer le démon SSH
  • Désactiver l'affichage du MOTD dans PAM en mettant en commentaire la ligne sesssion optional  pam_motd.so du fichier /etc/pam.d/login.
Ajouter l'exécution du script à la fin du fichier /etc/profile en ajoutant la ligne /usr/local/bin/dynmotd.sh (en remplaçant par le nom de votre script bien entendu :))

Et en ce qui concerne le PROMPT?

Le minimum syndical...

Pour le minimum syndical, on va juste activer la coloration syntaxique et diminuer les risques d'erreurs pour les sessions ROOT.

Pour ça, on édite le fichier bashrc : nano /root/.bashrc et on décommente les lignes

export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
et
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'



Et voilà, désormais à chaque connexion, vous aurez un beau login, toujours à jours ! ;)
Elle est pas belle la vie de Geek ?

Aucun commentaire:

Enregistrer un commentaire