#!/bin/bash ######################################################## ########## INICIO VARIABLES DE CONFIGURACION ########### ######################################################## #El archivo temporal que se utilizara para hacer el test test_file="/tmp/test" #El tamano de los bloques con los que se haran el test #deben ser consecutivos multiples de 2 bs="1024 2048 4096 8192 16384 32768" #El numero de veces que se hara el test con cada bloque, se hara la media n_times=1 #El tamano del archivo que se utilizara para el test (en bytes) 1000000=1GB count=1000000 #La posicion del resultado que da 'dd'. #Ejecutar: dd if=/dev/zero of=borrame bs=1024 count=10 #Mirar en que posicion esta el resultao en MB/s #Ejemplo: # >$ dd if=/dev/zero of=borrame bs=1024 count=10 # 10+0 records in # 10+0 records out # 10240 bytes (10 kB) copied, 9.7221e-05 s, 105 MB/s #El 105 esta en la posicion 8 de la linea (separando por espacios) pos=8 #Limpiar caches despues de cada test (recomendable). 1=si, 0=no lcaches=1 ############################################### ############ INICIO DEL PROGRAMA ############## ############################################### echo "Script para calcular el rendimiento del disco duro mediante dd" echo "Recomendable abrirlo con un editor para configurar las opciones" echo "Se necesitan los programas: bc, awk y bash" echo "Fuente:www.dabax.net Licencia:GPLv3" n_count=0 total_results=0 for b in $bs; do actual="" time=0 n_count=$[$n_count+1] echo -n "bs=$b count=$count " while [ $time -lt $n_times ]; do partial_result=$(dd if=/dev/zero of=$test_file bs=$b count=$count 2>&1 \ |grep "MB/s" | awk "{print \$$pos}") actual="$actual $partial_result" time=$[$time+1] rm -f $test_file if [ $lcaches -eq 1 ]; then echo "3" > /proc/sys/vm/drop_caches; fi echo -n "." done aux=0 for a in $actual; do aux=$(echo "$aux + $a" | bc); done aux=$(echo "$aux / $n_times" | bc) total_results=$(echo "$total_results + $aux" | bc) echo -n " $aux MB/sec" count=$[$count/2] echo "" done media=$(echo "$total_results / $n_count" | bc) echo "Media: $media MB/sec"