Mise en forme output.
This commit is contained in:
parent
a2e25fc91c
commit
b0670b8c4d
|
@ -26,26 +26,22 @@ done
|
|||
|
||||
for i in "${DISKS[@]}" #Boucle de test sur chaque disque
|
||||
do
|
||||
ARRAY_TEMPS+=($(/usr/sbin/smartctl -c "$i" | grep "polling" | grep -Eo '\''[0-9]{1,}'\'')) #Extraction des temps de polling dans les capacites SMART du disque (seulement le chiffre, en minutes). Notez les caracteres d echappement
|
||||
/usr/sbin/smartctl -t long "$i"
|
||||
DUREE_TEST_VAN=($(/usr/sbin/smartctl -c "$i" | grep "polling" | grep -Eo '\''[0-9]{1,}'\'' | paste -sd '\'' '\'')) #Extraction des temps de polling dans les capacites SMART du disque (seulement le chiffre, en minutes).
|
||||
DUREE_TEST=0
|
||||
for j in "${DUREE_TEST_VAN[@]}"
|
||||
do
|
||||
if (("$j" > DUREE_TEST)); then
|
||||
DUREE_TEST="$j"
|
||||
fi
|
||||
done
|
||||
ARRAY_TEMPS+=$DUREE_TEST
|
||||
/usr/sbin/smartctl -t long "$i" > /dev/null 2>&1
|
||||
MODEL=($(smartctl -i /dev/sda | grep "Device Model:" | sed "s/Device Model: //g"))
|
||||
echo "Le selftest pour le disque ${MODEL[@]} prendra $DUREE_TEST minutes."
|
||||
done
|
||||
|
||||
TEMPS_MAX=0 #RAZ du temps de polling
|
||||
|
||||
while [ "$FIN_TEST" = "NOK" ] #On boucle tant qu au moins un disque n a pas fini son selftest
|
||||
do
|
||||
FIN_TEST="OK"
|
||||
for i in "${DISKS[@]}"
|
||||
do
|
||||
if /usr/sbin/smartctl -c "$i" | grep "Self-test routine in progress"; then #Si scan non fini
|
||||
FIN_TEST="NOK" #On repasse la variable FIN_TEST a FALSE
|
||||
/usr/sbin/smartctl -c "$i" | grep "% of test remaining"
|
||||
sleep 5m #On attend pour relancer la boucle de test de statut
|
||||
break #on stop la boucle ici, inutile de scanner les statuts des autres disques
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
for i in "${ARRAY_TEMPS[@]}" #recherche de la valeur max dans les temps de polling extraits
|
||||
do
|
||||
if (("$i" > $TEMPS_MAX))
|
||||
|
@ -53,6 +49,22 @@ do
|
|||
fi
|
||||
done
|
||||
|
||||
while [ "$FIN_TEST" = "NOK" ] #On boucle tant qu au moins un disque n a pas fini son selftest
|
||||
do
|
||||
FIN_TEST="OK"
|
||||
for i in "${DISKS[@]}"
|
||||
do
|
||||
if /usr/sbin/smartctl -c "$i" | grep "Self-test routine in progress" > /dev/null 2>&1; then #Si scan non fini
|
||||
FIN_TEST="NOK" #On repasse la variable FIN_TEST a FALSE
|
||||
TEMPS=($(date +"%T"))
|
||||
POURCENTAGE_RESTANT=($(/usr/sbin/smartctl -c "$i" | grep "% of test remaining"))
|
||||
echo "$TEMPS : $POURCENTAGE_RESTANT du selftest restant."
|
||||
sleep 5m #On attend pour relancer la boucle de test de statut
|
||||
break #on stop la boucle ici, inutile de scanner les statuts des autres disques
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
date > $LOG #RAZ fichier de sortie + inscription date
|
||||
|
||||
for i in "${DISKS[@]}" #Boucle d inscription des résultats dans le fichier de sortie
|
||||
|
|
Loading…
Reference in New Issue