(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/>