(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!^\(.*\)$!\&nbsp;\&nbsp;\&nbsp;\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/>