Présentation

Je crois bien que l’une des commande que je tape le plus souvent est la consultation des logs.

Bob@Linux:/$tail -f /var/log/syslog

Et pour me faciliter la vie, j’ai voulu me faire un petit raccourci pour lancer cette commande. Et du coup, en profiter pour mettre en place la colorisation des logs.


Résolution

J’ai installé les paquets suivants

Bob@Linux:/$sudo aptitude install ccze syslog-ng

Le paquet syslog-ng n’est pas forcément nécessaire, mais comme j’ai pris l’habitude de l’installer et de l’utiliser, surtout dans la gestion d’un syslog centralisé, je le mets maintenant systématiquement.
Le paquet ccze est le paquet qui colorise les logs (et pas que les logs d’ailleurs).

ll ne reste plus qu’à éditer le fichier de personnalisation du bash

Bob@Linux:/$sudo  vi /home/bob/.bashrc 

Et à ajouter les lignes suivantes :

# Colorisation des logs
logtail() { tail -f $1 | ccze -A; }
alias logt='logtail'
alias logsys='logtail /var/log/syslog'
 

La première ligne permet de déclarer la nouvelle commande « logtail » qui exécutera automatiquement une colorisation des logs sur un tail. En paramètre il suffit d’indiquer le fichier de logs à exploiter. La commande logt est un alias de logtail (c’est toujours 3 lettres de moins à saisir).

Et comme la consultation du syslog est la principale consultation que je fais, j’ai rajouté un nouvel alias où je spécifie exactement le log à exploiter.


Objectif

Après avoir mis en place l’affichage de fortunes, j’ai voulu avoir la possibilité de personnaliser un peu plus le démarrage de mes sessions SSH.

Le plus simple pour cela est d’utiliser les scripts MOTD qui sont très personnalisables.


Personnalisation

Dans le répertoire /etc/update-motd.d/ se trouvent plusieurs scripts qui servent à construire le MOTD qui sera affiché à l’ouverture d’une session SSH.


media:/etc/update-motd.d$ ls -lah
total 48k
drwxr-xr-x    2 root     root         4.0k Jun  2 21:09 .
drwxr-xr-x  162 root     root          12k Jun  2 12:37 ..
-rwxr-xr-x    1 root     root         1.2k Jun  2 19:54 00-header
-rwxr-xr-x    1 root     root         1.1k Jun  2 19:55 10-help-text
-rwxr-xr-x    1 root     root          149 Jan 25 11:32 90-updates-available
-rwxr-xr-x    1 root     root          129 Apr 19 09:23 91-release-upgrade
-rwxr-xr-x    1 root     root          142 Jan 25 11:32 98-fsck-at-reboot
-rwxr-xr-x    1 root     root          144 Jan 25 11:32 98-reboot-required
-rwxr-xr-x    1 root     root         1.1k Oct 21  2010 99-footer

Pour faire afficher les informations de son choix, il suffit de rajouter un script numéroté.

Pour connaitre les sessions SSH ouvertes sur le serveur, j’ai créé le script suivant


cd /etc/update-motd.d
sudo touch 11-custom
sudo chmod 755 11-custom

Voici le contenu du script, qui va m’afficher la date, l’uptime et le load average du serveur et le détail des connexions ouvertes.


#!/bin/sh
date
echo ""
uptime
echo ""
echo "Connexions en cours"
who -H
echo

A chaque connexion SSH, j’ai maintenant ça qui est affiché :


Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-generic i686)
Thu Jun  2 21:42:14 CEST 2011

 21:42:14 up  9:06,  5 users,  load average: 0.01, 0.05, 0.06

Connexions en cours
NAME     LINE         TIME         COMMENT
ramon    tty7         Jun  2 12:36 (:0)
ramon    pts/0        Jun  2 12:38 (grey-linux.local)
ramon    pts/1        Jun  2 12:42 (grey-linux.local)
ramon    pts/2        Jun  2 12:44 (grey-linux.local)
ramon    pts/3        Jun  2 12:53 (grey-linux.local)

Last login: Thu Jun  2 21:10:55 2011 from grey-linux.local


Activation de la bannière Login SSH

Il est possible d’afficher un message d’information au moment la connexion SSH, lorsque le système demande le mot de passe.

Pour cela, il y a un paramètre a activer dans le fichier de configuration SSH /etc/ssh/sshd_config, puis à saisir le message qui sera affiché dans le fichier idoine.


sudo vi /etc/sshd_config

Dans le ficher sshd_config il faut dé-commenter la ligne suivante :


Banner /etc/issue.net

Il faut ensuite éditer le fichier /etc/issue.net pour y saisir le message qu’on souhaite voir afficher :


*********************************************************************
****  Avertissement ! Accès aux seules personnes autorisées !   ****
****  Vos activités au cours de cette session sont susceptibles  ****
****  d' être enregistrées. Toute activité illicite fera l'objet ****
****  d'un recours en justice !                                  ****
*********************************************************************

Objectif

A la maison, ou au bureau, je me connecte régulièrement sur mes équipements en SSH. Et j’ai eu envie de personnaliser un peu les connexions, en affichant une citation à l’ouverture de la session. Il y a de nombreuses fortunes disponibles sur le net, et j’ai mis la main sur une qui cite les « Chuck Norris facts ».

Rapidement téléchargé, puis installé, j’ai maintenant le plaisir de découvrir de nouveaux facts à chaque connexion. :D

Afin de pouvoir installer cette fortune sur plusieurs machines rapidement, j’ai fait un petit script.


Téléchargement des facts

On télécharge le fichier. Pour ma part, j’ai créé une arborescnece pour dépposer les fortunes.


mkdir /usr/hsare/fortunes
cd /usr/share/fortunes
wget http://chucknorrisfacts.fr/fortunes/fortunes.txt

Sur ubuntu, il faut exécuter toutes les commande en super utilisateur (sudo).

On converti le fichier avec l’encodage UTF8 pour la prise en charge des accents et caractères spéciaux et on le renomme.


iconv -f iso-8859-1 -t utf8 fortunes.txt --output chuck

Puis on génère le fichier fortune


strfile -s -r chuck chuck.dat

On peut tester que l’appel à cette fortune fonctionne :


media:~$ fortune /usr/share/fortunes/chuck
Chuck Norris n'a pas de sang sur les mains, ses ennemis nettoient avant de mourir.

Il ne reste plus qu’à éditer le fichier ~/.bashrc et copier la ligne suivante


fortune /usr/share/fortunes/chuck


Script

Pour gagner du temps, j’ai fait un petit script.


#!/bin/bash

# Script d'installation des fortunes
# Creation : 2011/06/02
# Derniere modification : 2011/06/02
# Licence : GPL
#
# Syntaxe Ubuntu : # sudo ./FortunesInstall.sh

# Verification des droits utilisateurs pour l execution du script

if [ $EUID -ne 0 ]; then
   echo "Le script doit etre lance en root : # sudo $0 Arg OPT" 1>&2
   exit 1
fi

# Creation du dossier des fortunes
#mkdir /usr/share/fortunes

cd /usr/share/fortunes

# telechargement des "Chuck Norris Facts"
wget http://chucknorrisfacts.fr/fortunes/fortunes.txt

# Conversion et renommage du fichier
iconv -f iso-8859-1 -t utf8 /usr/share/fortunes/fortunes.txt --output /usr/share/fortunes/chuck

# Generation de la fortune
strfile -s -r /usr/share/fortunes/chuck /usr/share/fortunes/chuck.dat

# Configuration du bash pour afficher les fortunes
echo "fortune /usr/share/fortunes/chuck" >> ~/.bashrc


Autres fortunes

Si les facts de Chuck Norris ne vous convienennt pas, voici d’autres fortunes à télécharger et installer.
- http://www.fortunes-fr.org/data/litterature_francaise
- http://www.fortunes-fr.org/data/personnalites
- http://www.fortunes-fr.org/data/proverbes
- http://www.fortunes-fr.org/data/philosophie
- http://www.fortunes-fr.org/data/sciences

Le principe est le même, il faut télécharger le fichier puis le convertir à l’aide de la commande « strfile ».


 wget http://www.fortunes-fr.org/data/philosophie
 strfile philosophie philosophie.dat


Et avoir une vache qui parle

Il est possible d’avoir une vache (et d’autres animaux) qui cite les fortunes installées.


media:~$ fortune /usr/share/fortunes/chuck | cowsay -f $(ls /usr/share/cowsay/cows/ | shuf | head -n1)
 ______________________________________
/ Jupiter est né de la cuisse de Chuck \
\ Norris                               /
 --------------------------------------
       \ (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~

Il suffit pour cela d’installer le paquet cowsay


aptitude install cowsay

Dans le fichier .bashrc, il faut ajouter la ligne suivante :


fortune /usr/share/fortunes/chuck | cowsay -f $(ls /usr/share/cowsay/cows/ | shuf | head -n1)