(Courriels de diversion: <remorque@apitoye-eczema.com> <vaporises@craquerions-imaginerent.com> <infligiez@fluctuerai-retrace.com> <ondulait@taillait-attirerent.com> <equipez@homographe-reveillerez.com> <convoque@amputiez-zigzaguaient.com> <couvrir@grisonnerais-diffusaient.com> <depredation@putain-encapuchonnee.com> <couronnees@tremoussements-claudicantes.com> <reussirai@vegetes-oppresserions.com> )
Selon philsfree <philsfree@free.fr>:> jeanmichel.123@free.fr a écrit :> >>>Pourquoi pas:
> >>>cat /etc/lsb-release
> >>>?
> >>Ce fichier n'existe pas sur une Slackware !
> Ca sonnait bien pourtant "lsb" pour Linux Standard Base ...
> >>Le seul moyen de le savoir pour une slack est de faire un :
> >>cat /etc/slackware-version
> Sous Debian, je vois bien un fichier /etc/debian_version
> mais avec un contenu aussi imprécis que
> testing/unstable
> on n'est que très moyennement avancé :-(
après avoir
* changé des - en _.
* raccourci certaine sligne sde script
* supprimé une perte de variable d'environnement
* lu le fichier debian
* remplacé madrale par mandrake
Le script est donc maintenant:
#!/bin/bash
#Ce script est sous licence GPL.
#Ce script a été créé pour répondre au besoin du CULTe (LUG de toulouse)
# http://www.culte.org
#Ce script donne certaines des caractéristiques principales d'une machine.
#auteur: Jean-Michel Gay
#date: 21 décembre 2004
#on ne genre que du html; pas de texte
OUTPUT=html
verbose=off
#########" Quelques routines générales
#html:balise de début de table
html_tab_start ()
{
echo "<table>"
}
#html:balise de fin de table
html_tab_stop ()
{
echo "</table>"
}
#html:balise internes à la table
html_tab_line ()
{
echo "<tr>"
echo "<td>"
echo $1
echo "</td>"
echo "<td>"
echo $2
echo "</td>"
echo "</tr>"
}
#html: création d'une table d'une ligne
html_make_sample_table ()
{
html_tab_start
sed 's!^\(.*\)$!<tr><td>\1</td></tr>!g' |
sed 's!:!</td><td>!g'
html_tab_stop
}
# création d'une table d'une ligne
make_sample_table ()
{
if [ html = $OUTPUT ]
then
html_make_sample_table
else
cat
fi
}
#indentation d'un flux
indent ()
{
if [ html = $OUTPUT ]
then
if [ text2 = "$1" ]
then
sed 's!^\(.*\)$!\ \ \ \1<br />!g'
fi
cat
else
sed "s/^/ /g"
fi
}
#affichage d'un titre de section
section ()
{
echo
if [ html = $OUTPUT ]
then
echo "<h4>"
fi
echo $1 :
if [ html = $OUTPUT ]
then
echo "</h4>"
fi
}
#########" Routines de détéction
#détection du système
#Donne la version du noyau, et le nom de la distribution
#note: j'ai un doute sur le issu. Dans mon cas, ca donne Mandrake 10.
detect_sys ()
{
kern=`uname -r `
if [ -f /etc/lsb-release ]
then
syst_lsb=`cat /etc/lsb-release | grep "ID" `
syst_lsb="$syst_lsb",`cat /etc/lsb-release | grep "RELEASE" `
else
syst_lsb='Distribution non basée sur une linux standard base'
fi
syst='Distribution non détéctée'
syst=`cat /etc/issue | head -n 1`
for i in mandrake-release redhat-release slackware-version debian_version
do
if [ -f /etc/$i ]
then
syst=$i:`cat /etc/$i `
fi
done
#syst=`cat /etc/issue | head -n 1`
# FIXME : issue semble intéressant pour une Debian, ou une Mandrake
# Il ne l'est pas pour une s*ware
html_tab_start
html_tab_line "noyau" "$kern"
html_tab_line "système LSB " "$syst_lsb"
html_tab_line "système" "$syst"
html_tab_stop
}
#detection du cpu
#en se basant sur les infos de /proc
detect_cpu ()
{
cat /proc/cpuinfo |
grep -e "^\(model name\|cpu MHz\|bogomips\)"
}
#détéction de la mémoire RAM.
detect_mem ()
{
cat /proc/meminfo |
grep "MemTotal"
#experimental: semmble détécter les barettes!
cat /proc/mtrr | sed "s!^.*size=\(.*\):.*write-\(.*\),.*!\2 : \1!g" |
sed "s/back/barette/g" |
sed "s/combining/video/g"
}
#detection des modules ''hard''
#En fait, on ne s'interesse qu'aux modules qui nous intéressent.
#Mais quels sont-ils?
detect_mod ()
{
html_tab_start
lsmod | grep -v Module|
(
while read a b
do
(
#echo $a
desc=`modinfo $a |
grep "^description:" | sed 's/^description://g' `
#grep -v "^depends:" |
#grep -v "^alias:" |
#grep -v "^parm:"|
case $desc in
*Audio* | *Midi* | *sound* | *Sound* )
#FIXME: est on intéréssé par les modules de son?
;;
*ether* | *Ether* | *Modem* )
#echo $a $desc
html_tab_line "$a" "$desc"
;;
esac
#echo "### " $a $desc | indent
)
done
)
html_tab_stop
}
#detection des disques
#On récupére les informations principales sur les 4 disques IDE.
detect_disk ()
{
for disk in hda hdb hdc hdd
do
DSK=/proc/ide/$disk
if [ -d $DSK ]
then
media=`cat $DSK/media`
model=`cat $DSK/model`
echo $disk: $media: $model
(
if [ cdrom != $media ]
then
capacity=`cat $DSK/capacity`
geometry=`cat $DSK/geometry`
echo "capacité: " $capacity "blocs/secteurs"
echo "géométrie:" $geometry
fi
#echo $media
#echo $model
) | indent text2 | sed "s!^!::!g"
fi
if [ on = $verbose ]
then
# Tant que l'on y est: liste des partitions
fdisk -l /dev/$disk | indent text2 | indent text2
fi
done
}
#Detection de la configuration réseau courante. (adresses IP).
detect_net ()
{
ifconfig | grep "inet add?r" | grep -v 127.0.0.1
}
#Detéction du matériel présent sur le bus PCI.
detect_pci ()
{
lspci | grep "controller:" | sed "s/^..:..\.. //g" | sed 's!controller:!:!g'
}
#########" Routines de détéction principale
#detection de tout
detect_all ()
{
host=`hostname `
today=`date "+%A %d %B %Y"`
if [ html = $OUTPUT ]
then
today="<small> $today </small>"
fi
echo ":$host:$today" | make_sample_table
section "Système"
detect_sys | indent
section "Processeur"
detect_cpu | make_sample_table
section "Mémoire"
detect_mem | make_sample_table
section "Disques"
detect_disk | make_sample_table
section "Réseau"
detect_net | indent
section "Modules spécifiques"
detect_mod | indent
section "Pci"
detect_pci | make_sample_table
}
#########" Verification de l'environnement d'execution du script.
verif ()
{
user=`whoami`
if [ root != $user ]
then
echo "Vous devez être root, pour lancer ce script!"
exit 1
fi
if [ /bin/bash != $BASH ]
then
echo "Désolé, ce script n'a été testé que sous bash!"
exit 1
fi
}
#########" Programme principal
verif
#RESULT=fiche.txt
SUFFIXE=".html"
RESULT=`hostname`$SUFFIXE
detect_all > $RESULT
#cat $RESULT
--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>