DIVULGACIÓN COMPLETA: Los scipt / comandos presentes en esta respuesta no son míos, sino más bien el trabajo de JDG Leaver. Se obtuvieron de una publicación de blog en su sitio web .
NÓTESE BIEN:
- Esto solo informará números precisos para los SSD de Samsung
- Necesitas haber
smartctl
instalado
Método 1:
Aquí hay un pequeño script útil que le permitirá monitorear el TBW de su SSD, junto con alguna otra información:
#!/bin/bash
#######################################
# Variables #
#######################################
SSD_DEVICE="/dev/sda"
ON_TIME_TAG="Power_On_Hours"
WEAR_COUNT_TAG="Wear_Leveling_Count"
LBAS_WRITTEN_TAG="Total_LBAs_Written"
LBA_SIZE=512 # Value in bytes
BYTES_PER_MB=1048576
BYTES_PER_GB=1073741824
BYTES_PER_TB=1099511627776
#######################################
# Get total data written... #
#######################################
# Get SMART attributes
SMART_INFO=$(sudo /usr/sbin/smartctl -A "$SSD_DEVICE")
# Extract required attributes
ON_TIME=$(echo "$SMART_INFO" | grep "$ON_TIME_TAG" | awk '{print $10}')
WEAR_COUNT=$(echo "$SMART_INFO" | grep "$WEAR_COUNT_TAG" | awk '{print $4}' | sed 's/^0*//')
LBAS_WRITTEN=$(echo "$SMART_INFO" | grep "$LBAS_WRITTEN_TAG" | awk '{print $10}')
# Convert LBAs -> bytes
BYTES_WRITTEN=$(echo "$LBAS_WRITTEN * $LBA_SIZE" | bc)
MB_WRITTEN=$(echo "scale=3; $BYTES_WRITTEN / $BYTES_PER_MB" | bc)
GB_WRITTEN=$(echo "scale=3; $BYTES_WRITTEN / $BYTES_PER_GB" | bc)
TB_WRITTEN=$(echo "scale=3; $BYTES_WRITTEN / $BYTES_PER_TB" | bc)
# Output results...
echo "------------------------------"
echo " SSD Status: $SSD_DEVICE"
echo "------------------------------"
echo " On time: $(echo $ON_TIME | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta') hr"
echo "------------------------------"
echo " Data written:"
echo " MB: $(echo $MB_WRITTEN | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo " GB: $(echo $GB_WRITTEN | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo " TB: $(echo $TB_WRITTEN | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo "------------------------------"
echo " Mean write rate:"
echo " MB/hr: $(echo "scale=3; $MB_WRITTEN / $ON_TIME" | bc | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
echo "------------------------------"
echo " Drive health: ${WEAR_COUNT} %"
echo "------------------------------"
Aquí está una muestra de la salida:
------------------------------
SSD Status: /dev/sda
------------------------------
On time: 2 hr
------------------------------
Data written:
MB: 25,098.917
GB: 24.510
TB: .023
------------------------------
Mean write rate:
MB/hr: 12,549.458
------------------------------
Drive health: 100 %
------------------------------
Estos datos son precisos, ya que acabo de instalar mi nuevo 850 Pro.
Método 2:
Alternativamente, aquí hay una línea para obtener solo el TBW:
echo "GB Written: $(echo "scale=3; $(sudo /usr/sbin/smartctl -A /dev/sda | grep "Total_LBAs_Written" | awk '{print $10}') * 512 / 1073741824" | bc | sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')"
You'reAGitForNotUsingGit
fuente
Total_LBAs_Written
que es 2268 y esto produce 1.1 MB escritos, claramente incorrectos para una unidad que tiene más de un año y es mi unidad principal del sistema :(SSD crucial de por vida restante
Para Crucial SSD (hecho por Micron), la cuestión de la vida útil restante se hace un poco más fácil.
https://www.micron.com/~/media/documents/products/technical-note/solid-state-storage/tnfd22_client_ssd_smart_attributes.pdf
Este documento identifica 202 como porcentaje restante de por vida. Como ejemplo en Ubuntu 16.04 (
sudo smartctl /dev/sda1 -a
), informa 202 como desconocido, pero el valor de 90 (en mi caso) coincide con la descripción en el pdf e indica que queda 90% de vida. El TBW puede escalarlo adecuadamente en la literatura de crucial.com en el disco que tiene. En realidad, la vida restante es bastante más útil.fuente
La respuesta aceptada tiene una salida hinchada, demasiada inutilización de scripts y oculta los nombres de los parámetros iniciales
smartctl
. Aquí hay una versión mejor;salida de muestra:
y el one-liner
fuente