Teste compatativo entre discos e/ou partições

Publicado por Joanes Pereira Duarte (última atualização em 21/01/2013)

[ Hits: 4.407 ]

Download testehd.sh

Download 1357699853.testehd.sh (versão 2)




Boa tarde amigos!

Fiz este script para testar comparativamente a velocidade de gravação discos e/ou tipo de arquivos (ext2, ext3, ext4, ntfs...).

Forma de usar:

1. Formatar disco ou criar partição no formato de arquivo desejado;
2. Montar este disco ou partição em algum diretório do SO;
3. Ajustar as variáveis do script com o diretório de montagem e a quantidade de arquivos a gravar;
4. Executar o script;
5. Repetir o processo para cada disco ou tipo de arquivo que quiser testar.

A cada teste feito, será salvo em um arquivo chamado log.txt (salvo no diretório corrente do script) o horário de início, fim e tempo total em segundos da gravação.

Claro que a configuração da máquina usada para os testes irá influenciar nos tempos registrados, porém o objetivo do script não é testar a velocidade de um único disco, mas comparar a velocidade de dois ou mais discos ou tipo de arquivos.

Espero que seja útil a alguém.

  



Versões atualizadas deste script

Versão 2 - Enviado por Joanes Pereira Duarte em 09/01/2013

Changelog: Nova versão corrigindo os comparadores usados nas linhas 30 e 35:

...
- if [ $TEMPO -gt 60 ] ; then
+ if [ $TEMPO -lt 60 ] ; then
...
- elif [ $TEMPO -gt 3600 ] ; then
+ elif [ $TEMPO -lt 3600 ] ; then
...

Download 1357699853.testehd.sh


Esconder código-fonte

#!/bin/bash
#
# testehd.sh
#
# Joanes Duarte, 23-12-2012
#
# Cria arquivos no diretório definido pelo usuário  e registra
# horário de início, fim e tempo tota da gravação. Útil para
# realizar comparações de velocidade entre discos e/ou partições
# Salva as informações no arquivo 'log.txt', que fica salvo
# no mesmo diretório do script.
#
# Pré requisitos: Ter uma partição ou disco formatado com o
# tipo de arquivo a ser testado. Após definir as variáveis.
#

############## Variáveis definidas pelo usuário #################

# Número de arquivos a serem criados
NUM_ARQ=1000

# Local de montagem da partição
LOCAL_MONT=/mnt/hdteste/

################# Daqui pra baixo não meixa!!! ###################

### Função que calcula o total do tempo de gravação
calcula_tempo(){

if [ $TEMPO -gt 60 ] ; then
HORAS=0
MINUTOS=0
SEGUNDOS=$TEMPO

elif [ $TEMPO -gt 3600 ] ; then
HORAS=0
MINUTOS=$(($TEMPO / 60))
SEGUNDOS=$(($TEMPO % 60))

else
HORAS=$(($TEMPO / 3600))
RESTO=$(($TEMPO % 3600))
MINUTOS=$(($RESTO / 60))
SEGUNDOS=$(($RESTO % 60))

fi
}

# Testa se variável 'NUM_ARQ' é numérica
[[ "$NUM_ARQ" != ?(+)+([0-9]) ]] && \
echo "$NUM_ARQ não é um número válido." && \
exit 1

# Testa se variável "LOCAL_MONT" é um diretório válido
[ ! -d "$LOCAL_MONT" ] && \
echo "$LOCAL_MONT não é um diretório válido." && \
exit 1

# Busca o nome do sistema de arquivos no sistema
SISTEM_ARQ=$(df -T "$LOCAL_MONT" | tail -n 1 | fmt -u | cut -d ' ' -f 2)


# Início do laço que cria os arquivos
CONTA=0
echo "==================[$SISTEM_ARQ]==================" >> log.txt
echo "INICIO.......... $(date +%d-%m-%Y-%H.%M.%S)" >> log.txt

TEMPO_INI=$(date +%s)         # Tempo inicial em seg.

while [ $CONTA -lt $NUM_ARQ ]
do
   (( CONTA ++ ))
   touch $LOCAL_MONT{arquivo}$CONTA.txt
done

TEMPO_FIM=$(date +%s)         # Tempo final em seg.
TEMPO=$(($TEMPO_FIM - $TEMPO_INI))   # Cáculo do tempo em seg.

calcula_tempo            # Chamada da funçao

echo "FIM............. $(date +%d-%m-%Y-%H.%M.%S)" >> log.txt
printf 'TEMPO TOTAL..... %.2d:%.2d:%.2d \n' $HORAS $MINUTOS $SEGUNDOS >> log.txt
echo '==========================================' >> log.txt
echo >> log.txt

Scripts recomendados

Script simples para controle de IP+MAC

Reinicia todos os trabalhos de todas as filas CUPS

backup Firebird em DVD

Pendetect

Verificar o IP válido da sua conexão na internet


  

Comentários
[1] Comentário enviado por joanesduarte em 09/01/2013 - 00:54h

Correção dos comparadores das linhas 30 e 35:

...
- if [ $TEMPO -gt 60 ] ; then
+ if [ $TEMPO -lt 60 ] ; then
...
- elif [ $TEMPO -gt 3600 ] ; then
+ elif [ $TEMPO -lt 3600 ] ; then
...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts