(Courriels de diversion: <discerneras@remorque-apitoye.com> <eczema@vaporises-craquerions.com> <imaginerent@infligiez-fluctuerai.com> <retrace@ondulait-taillait.com> <attirerent@equipez-homographe.com> <reveillerez@convoque-amputiez.com> <zigzaguaient@couvrir-grisonnerais.com> <diffusaient@depredation-putain.com> <encapuchonnee@couronnees-tremoussements.com> <claudicantes@reussirai-vegetes.com> )
> >>>#détection du système > >>>#Donne la version du noyau, et le nom de la distribution > >>>detect-sys () > >>>{ > >>> kern=`uname -r ` > >>> 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 > >>> > >Pourquoi pas: > >cat /etc/lsb-release > >? > Ce fichier n'existe pas sur une Slackware ! > Le seul moyen de le savoir pour une slack est de faire un : > cat /etc/slackware-version Bien, j'ai modifié le script qui généré du html. Il doit manquer un mot our debian et un pour suze.... En attendant que quelqu'un me file les infos manquantes, voici le nouveau script. NB: Pour rappel, mon logiciel de mel ajoute un retour à la ligne au milieu de: "###########################" Verification de l'environnement d'execution du script." #!/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: 6 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" ` 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 mandrale-release redhat-release slackware-version do if [ -f /etc/$i ] then syst=`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/>