[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Adjunto script de testeo de HD



Hola a todos,

Me acabo de cambiar el disco duro por uno de 20GB (je, je X-)

Y como lo queria comprobar a fondo cada dia (hasta que se acabe la garantia :-)
ya que ya me he pillado los dedos dos veces por no hacerlo, he mejorado un
script que hace tiempo que hice y me ha quedado "tan guai" que os lo envio
para que lo disfruteis (que de eso va el soft libre, ¿no?)

¿alguien ha hecho algo parecido para testear la memoria? ¿Y la placa base?


Modo de uso (extraido del script):

# Uso:  testhd		# Testea todas las particiones de todos los discos
#	testhd /dev/hda /dev/hdb  	# Testea los discos (todo seguido)
#	testhd /dev/hda1 /dev/hda2	# Testea las particiones
#
# Sugiero: Lanzar como root desde cron una vez a la semana, se nos enviará un
#	mail con el resultado (Es una feature de cron ;-)
#	También se puede usar por root desde un terminal mostrando progreso

¿A questa guai?


Saludos,
-- 
-------------------------------------------------
Manel Marin   e-mail: manel3@apdo.com
Linux Powered (Debian 2.2 potato)  kernel 2.2.17

Mira mis chuletas de Linux en  http://perso.wanadoo.es/manel3
-------------------------------------------------
Mi petición de drivers para Linux es la nº 33126
 (Pasate por http://www.libranet.com/petition.html ;-)
#!/bin/sh
#	testhd (0.02)  Test de disco duro automático (usuario/cron)
#
# Copyright Manel Marin @ 2000 Cubierto por la licencia GNU GPL disponible en
# http://www.gnu.org/copyleft/gpl.html  Se puede copiar, distribuir y modificar
# libremente bajo los términos de la GPL e incluyendo siempre este párrafo
#
#
# Uso:  testhd		# Testea todas las particiones de todos los discos
#	testhd /dev/hda /dev/hdb  	# Testea los discos (todo seguido)
#	testhd /dev/hda1 /dev/hda2	# Testea las particiones
#
# Sugiero: Lanzar como root desde cron una vez a la semana, se nos enviará un
#	mail con el resultado (Es una feature de cron ;-)
#	También se puede usar por root desde un terminal mostrando progreso
#
#6.11.99 (0.01)
#	Utiliza df para conocer particiones y su tamaño
#	y badblocks para testear las particiones montadas
#3.9.00 (0.02)
#	Emplear df para mostrar ocupación
#	Utilizar fdisk -l para hacer lista de particiones de todos los discos
#	Utilizar fdisk -s para obtener los bloques de cada partición
#	Mostrar progreso si se lanza desde usuario (y *NO* desde cron)
#	Cronometrar el tiempo de test de cada partición y medir la carga del
#	 sistema antes y después
#


# SE ESPECIFICA PARTICION/ES A TESTEAR
if [ "$1" != "" ]
then
    echo "testhd: Testeando $*"
    echo
    TESTLIST="$*"
else
    # NO SE ESPECIFICA PARTICION A TESTEAR, TESTEAR TODAS LAS PARTICIONES

    echo "testhd: Testeando todas las particiones..."

    # HACER LISTA CON LAS PARTICIONES DE TODOS LOS DISCOS
    TESTLIST=`fdisk -l | awk '
    # Las particiones empiezan con "/dev" en la primera palabra, y no queremos
    # las extendidas, ya que son "contenedores" para otras particiones
	$1 ~ "^\/dev" && $0 !~ "Extend"  { LISTA = LISTA " "$1 }
	END { print LISTA }
    '`
    echo "$TESTLIST"
    echo
fi

# EN MODO CONSOLA MOSTRAR PROGRESO (Desde cron *NO*)
# TRUCO: $USER no está definida en la ejecución desde cron
if [ $USER ]
then 
    MODE="-s"		# Lanzado por usuario: Mostrar progreso
else
    MODE="-v"		# Lanzado por cron: NO mostrar progreso
fi

# MOSTRAR CARGA DEL SISTEMA
echo -n "CARGA:  "
cat /proc/loadavg

# MOSTRAR INFO DE OCUPACION
echo "DF:"
df
echo

# PROCESAR LA LISTA (TEST DE PARTICIONES UNA A UNA)
for TEST in $TESTLIST
do

    # CONSEGUIR EL TAMAÑO EN BLOQUES
    HD_BLOCKS=`fdisk -s $TEST`

    # TESTEAR HD Y DAR MENSAJE DE RESULTADO Y TIEMPO EMPLEADO
    echo "* Testeando $TEST de $HD_BLOCKS bloques"
    time badblocks $MODE $TEST $HD_BLOCKS
    if [ $? == 0 ]
    then
	echo -n "CARGA:  "
	cat /proc/loadavg		# Mostrar carga del sistema
	echo
	echo "--- testhd: OK ---"
    else
	echo -n "CARGA:  "
	cat /proc/loadavg		# Mostrar carga del sistema
	echo
	echo "!!! testhd: *** ERROR ****************** !!!"
    fi
    echo

done

Reply to: