Publié
Commentaires Aucun

Comment superviser l’activité de ma machine sous Linux ?

Pour vérifier l’activité de sa machine, le premier réflexe est souvent de lancer la commande TOP qui va permettre de vérifier quel est le process qui occupe le CPU, quel est le niveau de mémoire utilisé, etc.

mesure.jpg

Sur le même principe, il existe d’autres outils en ligne de commande, que l’on peut mettre à profil pour évaluer la consommation sur les différentes ressources de la machine

Nous allons les lister ci dessous

Vous trouverez plus d’outils de supervision ici



atop




atop est un moniteur système interactif. Il peut affiche les informations d’entrée/Sortie sur les disques et aussi l’activité réseau, CPU, mémoire et utilisation du swap

Pour connaitre toutes les options disponibles, appuyer sur h pendant l’exécution

atop.png



Htop




htop est un visualiseur avancé de process, écrit pour Linux
En fait c’est une version avancée de top, qu’il remplace avantageusement
Il affiche une liste rafraichie régulièrement des processus qui sont lancés sur la machine, habituellement triée par quantité de cpu utilisée.
La souris interagit avec la liste pour pouvoir choisir sur quelle colonne trier
A la différence de top, htop fourni une liste complète des des processus qui tournent sur la machine , plutôt que la liste des ressources les plus utilisée. Htop utilise des couleurs pour l’affichage

htop.png



Iftop




iftop supervise l’utilisation réseau, comme ce que fait top pour l’utilisation du CPU
Il écoute le trafic réseau et affiche une table d’utilisation de la bande passante par l’hote et les serveurs distants
Pendant son exécution, il est possible d’activer ou de désactiver des options
Par exemple si vous appuyez sur p vous pourrez voir en plus les ports utilisés
Pour une liste des options, appuyez sur h pendant l’exécution

iftop.png



Iotop




Linux a toujours été capable d’afficher combien d’I/O étaient en cours (les colonnes bi et bo de la commande vmstat ).
Iotop est un programme Python qui affiche à la mode top
“Iotop” permet de contrôler les programmes ou processus qui provoquent des accès disques, qu’ils soient en écriture ou en lecture (on parle d’ “I/O” “Input/Output”, ou E/S “Entrée/Sortie” ). Cela peut s’avérer très utile si votre système connaît des ralentissements inexplicables, alors que l’activité du processeur ou l’utilisation de la mémoire vive semblent normales.

iotop.png



Mytop




mytop is un outil en ligne de commande qui ^permet de surveiller l’activité du serveur de base de données mysql
Il affiche les performances et les thread, il s’exécute sur la plupart des systèmes unix/linux (Macosx inclus)
L’affichage de mytop est composé

  1. d’un entête qui affiche les informations relatives à votre serveur de base données dont :
    • le nom de l’hôte,
    • la version de mysql installée,
    • le temps depuis son démarrage,
    • le nbre moyen de requêtes par seconde (qps),
    • le qps courant,
    • le nombre de threads,
    • d’un tableau qui liste tous les threads leur requêtes en cours.

mytop.png



Mtop




mtop (MySQL top) supervise un serveur MySQL en montrant les requêtes qui ont pris le plus de temps à s’exécuter
Les fonctionnalités incluent une fonction zoom sur un process expliquant la façon d’optimiser

mtop.jpg

Télechargement et info ici



nmon




Nmon est relativement simple à utiliser tout en étant assez complet.
Il permet d’afficher de nombreuse informations systèmes comme :

  • les statistiques du CPU,
  • les statistiques de la mémoire,
  • les statistiques du swap
  • les statistiques du réseau,
  • des infos sur les utilisateurs, les groupes, les supports de stockages,
  • les statistiques sur l’utilisation du kernel, les processus les plus gourmands

Pendant l’utilisation de nmon, vous pouvez appuer sur h pour afficher les options disponibles

Nmon peut s’utiliser en tant qu’outil de monitoring historique

nmon.png

La page officielle : http://nmon.sourceforge.net/pmwiki.php

Auteur

Publié
Commentaires Aucun

Installez votre propre serveur de sondage et de planification de réunions

En général, quand on parle autour de soi de la possibilité d’héberger son propre serveur de sondage, la première réaction est : Mais pourquoi tu te fait chi.. alors qu’il y a Doodle sur internet et que ça ne coûte rien

evaluate.jpg

Ben oui finalement, pourquoi avoir son propre site de sondage ?
En vrac je dirais :

  • Pour le fun
  • Pour l’anonymat (pas de collecte d’adresses IP, d’email)
  • Pour pouvoir utiliser son site en https (ce qui n’est pas le cas de doodle dans sa version gratuite)
  • Pas de pub
  • Pour pouvoir visualiser les statistiques sous forme de graphes
  • En interne dans le cadre d’une entreprise
  • Dans le cadre d’une association

Nous allons voir une alternative libre que vous pouvez tester en ligne pour vous rendre compte du rendu final sur votre serveur : Framadate

De quoi allons nous avoir besoin ?

  • Un serveur (comme on parle souvent de raspberry pourquoi ne pas l’utiliser)
  • apache
  • php
  • Mysql-server (pas obligatoire mais je trouve que c’est plus confortable)
  • Phpmyadmin (si vous avez mysql-server, c’est plus facile que la ligne de commande)


Comment fait on ?

code.jpg

Dans la suite de l’article, on considère que vous avez un serveur web avec php myql-server installé

  • On se place dans le répertoire qui va héberger le code de framadate, disons /var/www/
  • on télécharge la dernière version des fichiers en se rendant ici : https://git.framasoft.org/framasoft/framadate/tags
  • On dézippe le fichier récupéré
  • On renomme le répertoire
mv framadate-0.9.6-276f732defd5ab01358a33f7a4e3013ae01673bd framadate-0.9.6
  • On change les droits sur le répertoire
 chown -R www-data:www-data /var/www/framadate-0.9.6
  • On se rend dans ce nouveau répertoire
cd  /var/www/framadate-0.9.6
  • On installe les bibliothèques nécessaires
php -r "readfile('https://getcomposer.org/installer');" | php
apt-get install php5-intl

  • On change d’utilisateur et on lance la mise à jour et l’installation de composer

su www-data -s /bin/bash 
./composer.phar update
./composer.phar install

  • Maintenant on se déconnecte du compte www-data et on ajoute les lignes suivantes dans la configuration du site web (/etc/apache2/site-available/default-ssh)

Alias /framadate "/var/www/framadate-0.9.6"
    <Directory "/var/www/framadate-0.9.6/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Order deny,allow
       deny from all
       allow from 192.168.1.0/24
        allow from all
    </Directory>

192.168.1.0/24 est à remplacer par votre propre vlan

  • On recharge la configuration dans apache
service apache2 reload
  • Maintenant que vous avons installé les prérequis logiciels, il va falloir configurer la base de données
    Pour cela il faut vous rendre sur votre page phpmyadmin
    Dans la rubrique :
  • Privilèges
    Puis :
  • Ajouter un utilisateur
  • remplissez les champs avec localhost pour le serveur, et framadate pour nom d’utilisateur
  • Notez le mot de passe que vous choisissez pour l’utilisateur, toutes ces informations vous seront demandées lors de la configuration du site web
  • Cochez : Créer une base portant son nom et donner à cet utilisateur tous les privilèges sur cette base
  • Enfin cliquez sur créer un compte utilisateur

finale.png

Étape finale, on configure

  • Rendez vous sur la page de votre site :

http://votre_ip/framadate/admin/install.php
ou
https://votre_ip/framadate/admin/install.php si vous avez configuré avec un certificat

  • Vous remplissez le questionnaire avec les informations pour l’utilisation de la base de données et vous finissez en cliquant sur Installer

À l’installation, les tables de la base de données et le fichier app/inc/config.php sont créés. Le fichier app/inc/config.php contient d’autres paramètres de configuration facultatifs que vous pouvez modifier.

  • dans ce fichier vous modifiez cette variable
// Clean URLs, boolean
//const URL_PROPRE = true;
const URL_PROPRE = false;

  • Pour sécuriser le répertoire “admin” et donc restreindre l’accès à la page d’administration, Framasoft indique dans son guide

Framadate dispose d’un espace d’administration de l’ensemble des sondages dans le dossier /admin

Pour en restreindre l’accès, il faut ajouter au fichier de configuration Apache de votre site web (fichier /etc/apache2/sites-enabled/votre-domaine.vhost) ce bloc :

bc.. AuthType Basic AuthName “Administration” AuthUserFile “/var/www/framadate/admin/.htpasswd” Require valid-user Order allow,deny Allow from all

et créer le fichier .htpasswd contenant l’utilisateur et le mot de passe autorisé.

htpasswd -bc /var/www/framadate/admin/.htpasswd utilisateur mot-de-passe

(l’utilitaire htpasswd se trouve dans le paquet apache2-utils)

Pour protéger les fichiers .htaccess et .htpasswd, pensez à ajouter également ceci :

<FilesMatch "^\.ht.*">
deny from all
satisfy all
ErrorDocument 403 "Accès refusé."
</FilesMatch>

Et voila, normalement vous pouvez utiliser votre tout nouveau serveur de sondage

framadate

Vous pourrez trouver un tutoriel pour installer Framadate sur Ubuntu 14.04 de Patrick Harmel, sous licence GFDL

Auteur

Publié
Commentaires Aucun

Comment afficher plusieurs consoles dans un même écran

Quand on travaille avec la ligne de commande, il arrive fréquemment qu’on ait besoin de travailler sur plusieurs “fenêtres” en même temps

C’est bien souvent le cas avec les nano-ordinateurs comme le Raspberry pi, car il faut exécuter le programme, surveiller le comportement du réseau, visualiser l’usage du CPU, vérifier l’état des GPIO, etc.
On peut toujours faire défiler les différentes consoles avec le raccourci clavier : Alt+fnct x, mais on ne voit qu’un seul écran à la fois

code.jpg

Malgré le fait que les écrans soient de plus en plus grand la console ne s’affiche qu’une fois, à moins d’être en mode graphique

Il existe un outil historique pour partager son écran en plusieurs console qui est screen
Mais nous allons aujourd’hui voir un autre outil plus récent et offrant de nouvelles fonctionnalités, il s’agit de TMUX

Pour aider quelqu’un à distance, on a souvent recours à teamviewer, qui est simple à utiliser mais qui oblige à faire passer tout ses flux par les serveurs de l’éditeur. Avec TMUX on va voir qu’il est possible d’interagir avec un utilisateur à distance

Selon Wikipédia

Tmux est un multiplexeur de terminaux libre en mode texte.
Il permet d’utiliser plusieurs terminaux virtuels dans une seule fenêtre de terminal ou une session sur un terminal distant.
Tmux peut être détaché d’une session et continuer de fonctionner en arrière-plan, on peut également s’y rattacher plus tard.
Il permet aussi de lancer, de gérer et de garder le visuel sur plusieurs processus en même temps.
Tmux a pour but d’être une alternative stable et moderne à GNU Screen, il possède d’ailleurs la majorité des fonctions de GNU Screen,
mais contrairement à celui-ci il est distribué sous licence BSD et fait partie de la base système d’OpenBSD

Par exemple ci dessous TMUX affiche 4 consoles indépendantes les unes des autres :

tmux_exemple.jpg


Comment fait on ?

code.jpg

  • L’installation est assez simple :
apt-get update
apt-get install tmux

Utilisation

utilisation en mode multi panneaux

  • on commence par lancer tmux :
tmux
  • Pour commencer, on va séparer l’écran en 2, en mode horizontal :
Ctrl+b puis " (la touche 3)

On a maintenant 2 console indépendantes qui permettent de lancer des commandes séparées

  • Pour passer d’une fenêtre à une autre :
Ctrl+b puis o

ou

Ctrl+b + flèches de directions (haut bas gauche droite suivant la console que vous voulez atteindre)
  • Pour diviser le panneau courant en 2 panneau verticaux :
Ctrl+b puis %
  • Pour afficher en surimpression le N° des panneau
Ctrl+b puis q
  • Pour se rendre directement à un panneau suivant son N°
Ctrl+b puis q puis le N°
  • Redimensionner les panneaux
Ctrl+b puis alt + flèche de direction
  • Disposition par défaut TMUX propose un agencement par défaut des panneaux. Répéter la commande plusieurs fois pour passer les différents agencement
Ctrl+b puis espace

utilisation en mode session

multi.png

L’autre force de TMUX est de fonctionner en mode session

Quel est l’avantage des sessions ?
les sessions tmux sont indépendantes de la console. Vous pouvez par exemple créer une session TMUx puis ouvrir un ssh depuis une autre machine et vous connecter à cette session TMUX

Vous pouvez par exemple lancer une tache qui est très longue depuis une session tmux, refermer votre session ssh (ou perdre la session à cause d’une coupure réseau) et reprendre la session tmux depuis une nouvelle connexion ssh sans que le travail en cours ait été perdu

  • Pour créer une session
tmux new
  • pour donner un nom à la session
tmux new -s session-admin -n "backup de ma machine"

-s session-admin remplace le N° de session par le nom session-admin
-n “backup de ma machine” est le nom qui sera affiché sur la barre des taches de TMUX

  • Maintenant que la session TMUX est en cours il est possible de la laisser s’exécuter en tache de fond, Pour cela on va explicitement demander à TMUX de se détacher de la console actuelle en tapant depuis TMUX
Ctrl+b puis d

TMUX disparaît de l’écran

Maintenant comment retrouver ses sessions TMUX et s’y connecter ?

  • Lister les sessions en cours :
tmux ls
0: 1 windows (created Thu Jul 28 13:10:59 2016) [130x42]
1: 1 windows (created Sun Jul 31 11:35:05 2016) [319x78] (attached)
session-admin: 1 windows (created Sun Jul 31 12:21:36 2016) [319x78] (attached)

On voit ici que 3 sessions sont en cours

  1. Une session lancée le 28/07
  2. Une session lancée le 31/07
  3. Une session lancée le 31/07 mais dont le N° est remplacé par session-admin

La session du 31 est attachée (attached) à une console, c’est à dire qu’un utilisateur avec une console tty visualise et utilise cette session
Ici la session du 28 tourne en tache de fond

  • Se connecter à une session
tmux attach -t x

x représente le N° ou le nom de la session

Il est intéressant de noter ici que si on attache une session sur 2 consoles différentes, alors ce que fait un utilisateur dans sa session TMUX est visible dans la console TMUX du 2eme utilisateur

Cela permet donc notamment de pouvoir faire du support ou de la formation à distance.
Imaginons par exemple une salle de cours avec chaque utilisateur sur la même session TMUX et l’enseignant qui fait ses manipulations directement dans cette session

  • Tuer une session par N°
tmux kill-session -t x

Cependant je trouve plus propre pour arrêter une session, de l’attacher et de fermer toutes les fenêtres

La page de manuel de TMUX fourni toutes les commandes et options, mais il est possible de visualiser rapidement la liste des commandes disponibles en tapant :

tmux list-commands

et la liste des touches de raccourcis de commande avec :

tmux list-keys

Duplication de commandes TMUX

Une fonctionnalité intéressante est de pouvoir taper la même commande dans chacun des panneaux
Par exemple, imaginons que nous soyons connecté sur 4 Raspberry en même temps, et que nous décidions d’installer le même package sur chacun d’eux, il suffira de taper les commandes d’installation et de configuration dans un seul panneau pour que tous les Raspberry se mette à jour en même temps

L’option magique est :

set-window-option synchronize-panes

Dans tmux, on passe en mode “modification de variable” avec

Ctrl-b :
  • pour activer la duplication de commande :
set-window-option synchronize-panes on
  • Pour désactiver la duplication de commande
set-window-option synchronize-panes on

Options de configuration :

Support de la souris régler sur “on” pour activer “off” pour désactiver

  • setw -g mode-mouse off
  • set -g mouse-select-pane off
  • set -g mouse-resize-pane off
  • set -g mouse-select-window off

Configurer le terminal par défaut en mode 256couleurs

  • set -g default-terminal “screen-256color”

Activer les alertes d’activité

  • setw -g monitor-activity on
  • set -g visual-activity on
    1. Centrer la liste des fenêtres
    2. set -g status-justify centre

Commandes sur les fenêtres

A l’intérieur d’un session tmux, il est possible d’ouvrir des fenêtres (ou onglets) (Ctrl+b puis)

  • c Crée une nouvelle fenêtre
  • w Liste les fenêtres
  • n Sélectionne la fenêtre suivante
  • p Sélectionne la fenêtre précédente
  • f Trouve une fenêtre
  • , Nomme ou renomme la fenêtre
  • & Ferme la fenêtre tmux en cours
  • ! détache un panneau dans une nouvelle fenêtre
  • ctrl+b : join-pane -s :1 insert une fenêtre (ici 1) dans celle en cours
  • ctrl+b : list-panes liste tous les panneaux de la fenêtre en cours

Commandes diverses :

  • t Affiche un pendule dans le panneau en cours
  • ? Liste les raccourcis
  • : Prompt dans la barre des tache pour tapper des commandes
  • x Ferme le panneau en cours
  • z Zoom le panneau en cours (même commande pour revenir au mode normal)

Auteur

Publié
Commentaires Aucun

changer de format, redimensionner, marquer, vos images par lot et plus encore

Changer la taille, changer le format, mettre un copyright ©, exporter en niveaux de gris et bien d’autres actions sont depuis longtemps des travaux maîtrisés sur PC.

chat.jpg

Cependant cela devient vite lassant et chronophage d’avoir à apporter les mêmes modifications sur un lot d’images.
De nombreux logiciels souvent payants peuvent au prix de manipulations nécessitant une bonne expérience, réaliser cette tache.

Il existe cependant un programme qui peut faire cela en ligne de commande en un temps record et sans connaissance préalables du fonctionnement d’un logiciel graphique. Ainsi on va pouvoir par exemple créer un copie d’image en réduction de plusieurs centaines d’images en 1 click

Comme c’est en ligne de commande c’est facilement scriptable.

je vous propose ci dessous une ébauche de script, que vous pourrez compléter pour correspondre à vos besoins.

Le programme s’appuie sur convert qui est un outil du package imagemagick.

  • Pour installer le package imagemagick
apt-get install imagemagick

la page man de convert est très bien documentée pour vous indiquer toutes les options utilisables
vous trouverez aussi une documentation abondante sur Internet

http://linux.about.com/od/commands/l/blcmdl1_convert.htm
https://doc.ubuntu-fr.org/imagemagick
http://www.tux-planet.fr/imagemagick-manipuler-des-images-en-ligne-de-commande/
http://www.imagemagick.org/Usage/text/

Avec le programme ci dessous, il suffit d’indiquer une image ou une liste d’images en paramètre à l’aide d’un ou des jokers, et le script var redimensionner et inscrire un texte en haut à gauche de l’image, ou des images exportées. L’image originale n’est pas modifiée

  • Pour Utiliser le programme vous pouvez par exemple lancer :
./convert_image_txt.sh -m "/home/cajj/Téléchargements/cat-254572_640.jpg" -c red -t "pixabay.com" -r 300
  • Ce qui aura pour effet de redimensionner l’image cat-254572_640.jpg en 300 pixels de large avec le texte pixabay.com en rouge en haut à gauche et de l’exporter dans le même répertoire avec le nom cpcat-254572_640.jpg

petitchat.jpg

./convert_image_txt.sh -m "/media/cajj/OS/photos/plage/*.jpg"
  • Aura pour effet de créer une nouvelle copie de chaque image.jpg de répertoire /media/cajj/OS/photos/plage/ avec une largeur de 1024 pixels avec cajj.co incrit en blanc dans le coin supérieur gauche. Les nouvelles images seront écrites sous la forme cpimage.jpg

Le programme

code.jpg

#! /bin/bash

# pour lister les polices utilisables : convert -list font
# pour lister les couleurs utilisables : convert -list color
# pour voir toutes les options : man convert
# etc

insert="(c) cajj.co"
newsize="1024"
prefixe="cp"
pattern=""
filename=""
color="white"

if [ $# -eq 0 ]
then
 $0 -h
 exit 0
fi

while test $# -gt 0; do
        case "$1" in
                -h|--help)
                        echo "" 
			echo "Script pour redimentionner les images par lot "
                        echo "application [arguments]"
                        echo " "
                        echo "arguments:"
                        echo "-h   --help,        affiche l'aide"
                        echo "-m motif,           utilise motif comme motif de selection des fichiers à renommer"
                        echo "                    motif=nom ou partie de nom à rechercher (jpg, bmp, jpeg, *ko.jpg, tu*tu.jpg, toto*,  etc. -  le jocker * est accepté mais doit etre coté \"\" )"
                        echo "-t texte,           specifie un texte à incruster dans l'image"
                        echo "-c color,           specifie la couleur du texte à incruster dans l'image"
                        echo "-r size,            specifie une largeur de redimentionement de l'image de sortie"
                        echo "-p prefixe	  prefice= prefixe de nommage des fichiers redimmentionnés (ex : original=toto.jpg prefixe=aa sortie= aatoto.jpg)"
                        echo "			  prefixe supporte le chemin en plus du nom"
                        echo "script basé sur imagemagick"
                        exit 0
                        ;;
#texte à écrire sur la photo
                -t)
                        shift
                        if test $# -gt 0; then
                                insert=$1
                        else
                                insert=""
                        fi
                        shift
                        ;;
#couleur du texte
                -c)
                        shift
                        if test $# -gt 0; then
                                color=$1
                        else
                                color="white"
                        fi
                        shift
                        ;;
# motif de fichier à rechercher
                -m)
                        shift
                        if test $# -gt 0; 
			then
                          pattern=$1
                        else
                          echo "pas de motif de recherche spécifié"
                          exit 1
                        fi
                        shift
                        ;;
# taille de l'image finale
                -r)
                        shift
                        if test $# -gt 0; then
                                newsize=$1
                        else
                                newsize="1024"
                        fi
                        shift
                        ;;
                -p)
                        shift
                        if test $# -gt 0; then
                                prefixe=$1
                        else
                                echo "pas de préfixe spécifié"
                                exit 1
                        fi
                        shift
                        ;;
                *)
                        break
                        ;;
        esac
done

if [ -z "$pattern" ]
then
 echo "pas de motif de recherche spécifié"
 exit 1
fi

if [ -f "$pattern" ]
then
 filename=$(readlink -f $(echo "${pattern}") | head -n 1)
fi

path=$(dirname $(readlink -f $(echo "${pattern}") | head -n 1))"/"

rename=${path}${prefixe}${name}

echo "Nom complet   : "${path}${filename}
echo "chemin        : "${path}
echo "Nom à lister  : "${pattern}
echo "renommer en   : "${rename}
echo "redimention  : "${newsize}

for img in  $pattern
do
 toto=$(printf %q "$img")
 name=$(basename "$toto")
 echo "Ecriture de : ${path}${prefixe}${name}"
 convert $(printf %q "$img")  -resize $newsize -pointsize 26  -stroke $color -strokewidth 2 -fill yellow  -draw 'translate 10,50 rotate -10 text 10,10 '${insert}' ' ${path}${prefixe}${name}
done

Remarques :

  1. Ce programme est un exemple et une ébauche de script que vous pouvez réaliser. Veuillez prendre soin de faire des sauvegardes de vos fichiers avant de tester et/ou modifier ce script. cajj.co ne pourrait etre tenu responsable de quoi que ce soit provoqué par ce code
  2. Comme indiqué dans l’aide du programme, si la chaîne fournie pour les nom de fichiers à convertir contient des jokers (*) alors il faut indiquer la chaîne entre guillemets
  3. Le programme ne peut convertir les fichiers avec des noms contenant des caractères spéciaux (espace et autre)

Auteur

Publié
Commentaires Aucun

Et si votre serveur Linux vous disait des petits mots doux lorsque vous vous connectez en console

les_mots.jpg

Lorsque vous ouvrez une session en console sur une machine Linux, un message d’accueil s’affiche
Ce message appelé : motd (message of the day/message du jour) peut être personnalisé

Habituellement par défaut vous avez quelque chose comme ça :

Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.10.58+ armv7l)

 * Documentation:  https://help.ubuntu.com/

45 packages can be updated.
28 updates are security updates.

Last login: Sat Jul 23 17:41:12 2016 from 192.168.10.1

En fait on peut mettre le message que l’on veut, et beaucoup d’administrateurs en profitent pour afficher un message qui permet d’identifier facilement le serveur sur lequel on se connecte

Vous trouverez sur internet des générateurs de code ascii, comme par exemple :
motd generator
http://patorjk.com/software/taag/#p=display&f=Graffiti&t=%20
http://www.network-science.de/ascii/

Il est même possible de convertir une image en texte
https://motd.tty-i.com//

Comment fait on ?

On va voir comment modifier le message d’accueil de façon statique, mais on va également voir comment générer un motd plus dynamique qui permet d’avoir des infos système sur la machine comme ça :

motd_complet.jpg

Pour Modifier le modt rien de plus facile

Sous Debian (raspbian) faites une copie du fichier original, puis éditez le fichier /etc/motd, ou créez le si il n’existe pas

cp /etc/motd /etc/motd.bck 
nano /etc/motd 

Et copier le texte que vous voulez voir apparaître à l’ouverture de session

ce qui dans notre cas donne :

Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.10.58+ armv7l)

 * Documentation:  https://help.ubuntu.com/

45 packages can be updated.
28 updates are security updates.

  ______     ___            __         __       ______   ______
 /      |   /   \          |  |       |  |     /      | /  __  \
|  ,----'  /  ^  \         |  |       |  |    |  ,----'|  |  |  |
|  |      /  /_\  \  .--.  |  | .--.  |  |    |  |     |  |  |  |
|  `----./  _____  \ |  `--'  | |  `--'  |  __|  `----.|  `--'  |
 \______/__/     \__\ \______/   \______/  (__)\______| \______/

Last login: Sun Jul 24 12:53:50 2016 from 192.168.1.1

Sur les serveurs, la génération du motd se fait grâce à des scripts spécifiques (package landscape-common)

ls /etc/update-motd.d/
00-header  10-help-text  90-updates-available  91-release-upgrade  98-fsck-at-r$

Ajout d’un script à la fin du message du jour

On peut aussi créer ses propres scripts dans /etc/update-motd.d/.
Bien entendu, ces scripts n’ont de sens que s’ils sont destinés a afficher du texte sur le terminal.

Par exemple:

nano /etc/update-motd.d/15-disque_libre

    #!/bin/sh
    echo
    /bin/df -h
    echo

Ce script doit avoir des droits d’exécution.

sudo chmod +x /etc/update-motd.d/15-disque_libre

Vous pouvez activer désactiver des scripts du répertoire /etc/update-motd.d/

Pour désactiver un script
On enlève les droits d’exécution
Par exemple pour ne plus voir la ligne

Documentation: https://help.ubuntu.com/

sudo chmod -x /etc/update-motd.d/10-help-text

Pour activer un script

Pour activer un script il suffit de lui donner les droits d’exécution

sudo chmod +x /etc/update-motd.d/10-help-text

Sur raspberry ce package n’est pas installé par défaut, on se contentera donc de modifier le fichier /etc/motd

Voyons maintenant comment afficher un message avec des infos système dynamiques

installation du script

app.jpg

  • On télécharge le script
wget https://github.com/willemdh/FireMotD/archive/v5.14.160701.zip
  • décompresse l’archive et on lance la construction
unzip v5.14.160701.zip
cd FireMotD-5.14.160701/
sudo make install
sudo make bash_completion

le script est maintenant installé dans le répertoire dans /usr/local/bin/

  • On teste
/usr/local/bin/FireMotD -S

Attention sur le RPI c’est un peu long

  • On affiche en choisissant le thème
/usr/local/bin/FireMotD -t red

Si il manque des paquets installez les

root@rpi170:~/FireMotD-5.14.160701# /usr/local/bin/FireMotD -t red
 /usr/local/bin/FireMotD: line 193: mpstat: command not found
 /usr/local/bin/FireMotD: line 199: bc: command not found
apt-get install bc
 apt-get install sysstat 

motd_red.jpg

Pour connaître toutes les options

/usr/local/bin/FireMotD -h

Rafraîchissement automatique

  • Pour que le motd se rafraîchisse automatiquement, on va programmer une tache 1 fois par jour à 3h03
sudo crontab -e
3 3 * * * /usr/local/bin/FireMotD -S > /dev/null

  • On peut écrire le résultat dans /etc/motd

/usr/local/bin/FireMotD -t blue >/etc/motd

On Combine les 2 techniques

  • on crée un fichier qui contient la bannière ASCII
  • On crée un script qui sera lancé par le cron et qui copie la bannière et l’extraction FireMotD dans le fichier motd
nano /usr/bin/motd_dyn.sh
#! /bin/bash
/usr/local/bin/FireMotD -S
cat /etc/motd_ascii > /etc/motd
/usr/local/bin/FireMotD -t blue >>/etc/motd

On ajoute les droits d’exécution pour ce fichier

chmod +x /usr/bin/motd_dyn.sh
  • Et on modifie le cron
sudo crontab -e
3 3 * * * /usr/bin/motd_dyn.sh > /dev/null

voila maintenant notre motd au démarrage de la session

motd_complet.jpg

On peut faire également plus fin et générer la page à chaque ouverture de session, dans ce cas ça ralentit un peu l’ouverture, mais l’affichage du rapport est rafraîchi à chaque ouverture de session

Pour cela, et par utilisateur

  • Editez le profile de l’utilisateur ~/.profile file, ~/.bash_profile file, ou le fichier ~/.bashrc
nano .profile

Ajoutez l’appel à FireMotD à la fin du fichier (choisissez votre thème)

/usr/local/bin/FireMotD -t red

Vous pouvez aussi modifier le profile pour tous les utilisateurs

par exemple ./etc/bash.bashrc, /etc/profile

Auteur

← Plus anciens Plus récents →