Archive for Linux

Focus sur les outils graphiques du 2.2

Comme promis lors de l’enregistrement du 2.2 et tant réclamé depuis, voici mes notes concernant les deux outils RRDTool & GnuPlot :

Dans ce premier exemple je vais me baser sur le résultat de la commande vmstat qui sort des statistiques chiffrées sur l’utilisation mémoire virtuelle et cpu. Tout est intégré dans un script qui permet :

  1. de générer la base de données RRD (rrdtool create)
  2. de collecter des données avec vmstat et des les insérer dans cette base (vmstat)
  3. de générer les graphiques grâce aux données collectées (rrdtool graph)

Référence : Article d’un blog IBM avec ce même script créé à l’origine en ksh pour AIX, modifié pour Linux en bash (RRDtool identique mais pas vmstat qui est natif OS!)

Il vous suffit de copier-coller ce script dans un rrdtest.ksh et de l’éxécuter avec un nombre de seconde correspondant à l’échantillon désiré : ./rrdtest.ksh 200

https://www.ibm.com/developerworks/mydeveloperworks/blogs/aixpert/entry/using_rrdtool_to_graph_vmstat_output_a_worked_example?lang=en

#!/bin/bash
if [[ $# -eq 1 ]] && [[ $1 -le 86400 ]]
then
echo This script captures for $1 seconds
echo Remove the previouss vmstat.rrd database in this directory
rm vmstat.rrd
echo Create vmstat.rrd for max 86400 seconds = max 24 hours at 1 second captures
rrdtool create vmstat.rrd --step 1 \
DS:r:GAUGE:5:U:U \
DS:b:GAUGE:5:U:U \
DS:swpd:GAUGE:5:U:U \
DS:fre:GAUGE:5:U:U \
DS:buff:GAUGE:5:U:U \
DS:cache:GAUGE:5:U:U \
DS:si:GAUGE:5:U:U \
DS:so:GAUGE:5:U:U \
DS:bi:GAUGE:5:U:U \
DS:bo:GAUGE:5:U:U \
DS:in:GAUGE:5:U:U \
DS:cs:GAUGE:5:U:U \
DS:us:GAUGE:5:U:U \
DS:sy:GAUGE:5:U:U \
DS:id:GAUGE:5:U:U \
DS:wa:GAUGE:5:U:U \
RRA:AVERAGE:0.5:1:86400
TIME=`date +%s`
echo startseconds $TIME
echo Capturing for $1 seconds
vmstat 1 $1 | awk -v time=$TIME '/^.[0-9]/{ n++; print "rrdtool update vmstat.rrd "time+n":" $1 ":" $2 ":" $3 ":" $4 ":" $5 ":" $6 ":" $7 ":" $8 ":" $9 ":" $10 ":" $11 ":" $12 ":" $13 ":" $14 ":" $15 ":" $16 }' >vmstat.output
ENDTIME=`date +%s`
echo endseconds $ENDTIME
echo Load the vmstat data into the vmstat.rrd database
echo The file has `wc -l vmstat.output` lines
bash <./vmstat.output
echo Graph the data
rrdtool graph plot/cpu_utilisation.png \
--rigid --lower-limit 0 --upper-limit 100 \
--title "CPU Utilisation" \
--vertical-label "Percent Stacked" \
--start $TIME \
--end $ENDTIME \
--height 600 \
--width 1000 \
DEF:us=vmstat.rrd:us:AVERAGE AREA:us#00FF00:"User" \
DEF:sy=vmstat.rrd:sy:AVERAGE STACK:sy#0000FF:"System" \
DEF:wa=vmstat.rrd:wa:AVERAGE STACK:wa#FF0000:"Wait" \
DEF:id=vmstat.rrd:id:AVERAGE STACK:id#FFFFFF:"Idle"
rrdtool graph plot/run_queue.png \
--title "Process Run Queue" \
--vertical-label "Processes" \
--height 600 \
--width 1000 \
--start $TIME \
--end $ENDTIME \
DEF:r=vmstat.rrd:r:AVERAGE LINE2:r#00FF00:"Run Queue"
rrdtool graph plot/block_io.png \
--title "IO blocks" \
--vertical-label "Nb Blocks" \
--height 600 \
--width 1000 \
--start $TIME \
--end $ENDTIME \
DEF:bi=vmstat.rrd:bi:AVERAGE LINE1:bi#00FF00:"IN" \
DEF:bo=vmstat.rrd:bo:AVERAGE LINE2:bo#0000FF:"OUT"
rrdtool graph plot/system.png \
--title "System" \
--vertical-label "Nb/sec" \
--height 600 \
--width 1000 \
--start $TIME \
--end $ENDTIME \
DEF:in=vmstat.rrd:in:AVERAGE LINE1:in#00FF00:"Interrupt" \
DEF:cs=vmstat.rrd:cs:AVERAGE LINE2:cs#0000FF:"Context Switch"
exit 0
else
echo "Invalid number of arguments or out of range..."
echo "USAGE : $0 [nb_seconds]"
echo "Use max 86400 seconds (24h) ; 3600 = 1h"
fi

Et voila : nos données vmstat sont dans une base rrdtool et les 4 commandes rrdtool graph m’ont sorti les 4 graphiques suivants qu’il ne vous reste plus qu’à injecter dans vos pages web ou envoyer par mail…

Dans l’ordre ci-dessous : CPU%, proc.run.queue, block IO & system interrupt, pour une collecte de 200 secondes. Pour savoir ce que ces données représentent, man vmstat !

 

 

Installation : sudo apt-get install rrdtool

Et comme vous le savez, “la taille du paquet” est importante pour moi : ces deux soft tiennent sur une disquette. Taille du package rrdtool installé : moins d’un MegaByte !

 

Trouver une série de chiffre pertinent pour une représentation graphique. Un fichier plat fait l’affaire mais une base de donnée peut également être attaquée par requête SQL. C’est ce que j’ai utilisé dans l’exemple ci-dessous :

Tapper gnuplot en ligne de commande pour vous retrouver dans le logiciel et encoder les lignes d’exemple suivantes, ou plus simplement pré-encoder un fichier .gnu contenant les lignes ci-dessous, et entrer ce fichier en argument : gnuplut bubulle.gnu

#GNUPLOT SCRIPT by bubulle @2012
# Setting terminal and variables
set terminal png
set output "/home/bubulle/plot/statest.png"
max=`sqlite3 DB1 'select max(EpisodeNr) from stat'`
# Setting Plot Parameters
set datafile separator "|"
set title "Downloaded Tux Podcast"
set style data linespoints #points lines steps fs dots
set yrange [0:*]
set xtics 259200 rotate by -60
set xdata time
set format x "%d/%m"
set timefmt "%Y-%m-%d"
# Generating Plot
plot for [i=1:max] "<sqlite3 DB1 'select d_date,EpisodeNr,Downloaded from stat where EpisodeNr=".i." order by d_date'" using 1:(stringcolumn(2) == i ? $3 : 1/0) title "EP".i

OK je vous concède que cette dernière commande qui injecte le résultat d’un SQL dans la commande de plotting n’a pas réussi du premier coup… mais après 2 ou 3 (50 en fait) essais, voici à quoi je voulais arriver : superposition de plusieurs séries dans la même échelle de temps :

Installation : sudo apt-get install gnuplot
Taille du package gnuplot installé : 45 kiloByte !

Voila pour ce mois-ci! On se retrouve avec plaisir autour du 20 mars pour le podcast 2.3.

Ubuntu Phone OS

Une bonne année à tous les manchots !

Que cette nouvelle année vous apporte tout ce que vous avez toujours souhaité (et si y’a un peu plus, on vous le met quand même).

Bon, petit papier sur le buzz canonical d’hier…

Ubuntu va exister en OS pour smartphone. C’est ce que je retiens de la longue présentation de notre ami Mark Shuttleworth.

Mark passe 5 minutes à nous raconter comment Ubuntu est beau, joli et gentil, donc si vous souhaitez vous taper la présentation pour découvrir le nouvel OS, je vous conseille de commencer à 5’21″, avant ça c’est sans intérêt.

Mark Shuttleworth présente Ubuntu Phone OS

Bon alors en gros résumé ça donne quoi.

Un OS pour smartphone qui a l’air fort proche nativement de ce qu’est Ubuntu. Au niveau de l’interface, je trouve que c’est ni plus ni moins qu’un nouvel OS tactile pour smartphone. Les caractéristiques de cet OS sont accompagnés de superlatifs carréments écoeurants. Je ne compte plus les “brilliant”, “fantastic”, “beautiful” que Mark répète inlassablement … Après tout, c’est son nouveau bébé, quoi de plus normal qu’il le pense… J’aurais juste préféré qu’il en garde deux trois en poche histoire de ne pas galvauder les qualificatifs mais soit….

Et la révolution ?

Est-ce que cet OS va secouer le monde des smartphones ? On sait que les systèmes GNU/Linux ont peine à s’imposer dans le monde privé alors qu’ils sont omniprésents sur les serveurs d’entreprises et les serveurs Web.

Canonical a toujours voulu renverser cette tendance en poussant progressivement Ubuntu chez le particulier. A mon avis, c’est un échec. Apple prend les parts que Microsoft perd sur le marché et Ubuntu n’avance pas…

Les autres distributions avancent. Elles ont leur propre tempo mais refusent de rentrer dans une cour qui les obligeraient à faire des compromis sur le plan éthiques. Il est plus facile pour les distributions GNU/linux, réputées stables et sécurisées de s’imposer dans un monde d’entreprise ou le choix de l’OS doit être justifiée par des coûts, des harmonisations de ressources, des performances et de la stabilité que de s’imposer dans l’univers marketing de l’ordinateur personnel destiné à Monsieur et Madame Lambda.

Ubuntu, à force de vouloir jouer avec les grands, a fait des choix qui divisent… et finalement Ubuntu souvent agace sa propre communauté, la FSF et même ses utilisateurs… Avec Unity, avec l’approche secure boot, avec le partenariat Amazon et j’en passe, on ne sait plus bien à qui Ubuntu souhaite parler…

Toujours est-il qu’on a l’impression que Canonical va viser autre chose avec son Ubuntu Phone OS. Il va viser l’entrerprise. Canonical va promouvoir ce smartphone comme un smartphone d’entreprise IT.

L’idée…

Alors il y a un appel aux partenaires. Forcément, Canonical supporte Ubuntu qui n’est jamais qu’un OS. Pour faire des smartphones, il ne suffit pas de mettres des ISO installables sur un site. Donc ils faut des opérateurs réseau, des OEM et des ODM. Dans cet appel il y a un mini descriptif du téléphone haut de gamme qu’ils souhaitent commercialiser, ce qu’ils appellent le High-end Ubuntu “superphone”:

System requirements for smartphones Entry level Ubuntu smartphone High-end Ubuntu “superphone”
Processor architecture 1Ghz Cortex A9 Quad-core A9 or Intel Atom
Memory 512MB – 1GB Min 1GB
Flash storage 4-8GB eMMC + SD Min 32GB eMMC + SD
Multi-touch Yes Yes
Desktop convergence No Yes

Comme vous pouvez le voir, il y a une option possible avec le “high end” c’est le Desktop Convergence. On sait qu’Ubuntu avait déjà réussi le double OS en connectant un smartphone Android sur un Dock. Une fois “docké”, on avait accès à un Ubuntu. Lorsque l’on retirait le smartphone du Dock, on récupérait le smartphone Android. Le projet s’appelle Ubuntu for Android, plus d’infos ici : Ubuntu For Android

Le Desktop Convergence a l’air d’aller un niveau plus loin. On ne parle pas ici de deux OS différents qui ne se parlent pas mais bien d’une couche de présentation différentes avec des resources identiques:

Desktop Convergence

Bien que Mark n’en parle pas dans sa présentation, le défi est là car si je dois acheter un smartphone prochainement, vu que je ne suis pas un joueur et que je n’ai pas besoin de beaucoup de RAM/CPU/… , avoir un PC dans ma poche qui puisse aussi me servir de téléphone, ça me tente…

Maintenant la grosse question c’est quand aura-t-on la chance de toucher l’engin…???

 

Nettoyer son disque sous GNU/Linux avec agedu

Si vous êtes comme moi, vous aimez de temps en temps faire le nettoyage de printemps sur votre disque, il existe un petit outil extrêment sympathique découvert ce matin qui sert à visualiser votre utilisation disque.

Alors vous allez me dire que la commande “du” est parfaite pour ça. Oui, c’est vrai… la commande “du” fait déjà ça. Mais le petit soft “agedu” fait un peu plus:

  • Il vous permet des rapports web qui vous permettent de “naviguer” dans votre utilisation disque
  • Il tient compte de la date du dernier accès du fichier

Grâce à ce second point, ça met tout de suite en évidence les fichiers qui sont là depuis longtemps et qui, sans doute, peuvent être effacés.

Comment ça marche ?

Facile, ça s’installe avec un

apt-get install agedu

Ou bien un

yum install agedu

Bon, je ne vous les fait pas toutes, vous savez installer un package sur votre GNU/Linux

Après, on lance l’analyse sur les partitions qui vous sont familières, genre

agedu -s /home/CaptainPosix

ou encore carrément

agedu -s /

Ca va vous scanner votre répertoire et ses sous-répertoires, indexer le tout, et puis après, on publie sur une url du pc.

Si vous êtes seul sur votre machine, on fait simplement un

agedu -w --address 127.0.0.1:9000

En supposant que votre url est accessible par quelqu’un d’autre, on peut lui demander un “one time password”:

[root@MyPC~]# agedu -w --address 192.168.1.25:9000 --auth basic
Username: agedu
Password: p8u6mpbc9s4dy9gd
URL: http://192.168.1.25:9000/

Puis il suffit de se rendre sur l’URL en question à l’aide de votre plus beau browser et là, on voit un truc dans le style

Le répertoire racine

N’est-ce pas magnifique ???

Maintenant on navigue et par exemple, si on clique le répertoire usr:

le répertoire usr

Ce qui est long est gros en terme de volume disque, ce qui est rouge est vieux en terme de dernier accès à la resource…

Un autre truc sympa, si vous avez des tas de films AVI qui sont partout, on peut spécifier la recherche sur l’extension en faisant un

agedu -s . --exclude '*' --include '*.avi'

Voilà, en espérant que ça vous serve un jour…