DIVULGATION COMPLÈTE: Les commandes / scipt présentes dans cette réponse ne sont pas les miennes, mais plutôt le travail de JDG Leaver. Ils provenaient d' un article de blog sur son site Web .
NB:
- Cela ne rapportera que des chiffres précis pour les SSD Samsung
- Vous devez avoir
smartctl
installé
Méthode 1:
Voici un petit script pratique qui vous permettra de surveiller le TBW de votre SSD, ainsi que d'autres informations:
#!/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 "------------------------------"
Voici un échantillon de la sortie:
------------------------------
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 %
------------------------------
Ces données sont exactes, car je viens d'installer mon nouveau 850 Pro.
Méthode 2:
Alternativement, voici un one-liner pour obtenir le TBW uniquement:
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')"
Total_LBAs_Written
2268, ce qui produit 1,1 Mo écrit - clairement incorrect pour un lecteur de plus d'un an et mon lecteur système principal :(Durée de vie SSD cruciale restante
Pour les SSD Crucial (fabriqués par Micron), la question de la durée de vie restante est un peu plus facile.
https://www.micron.com/~/media/documents/products/technical-note/solid-state-storage/tnfd22_client_ssd_smart_attributes.pdf
Ce document identifie 202 comme pourcentage de durée de vie restante. Par exemple, sur Ubuntu 16.04 (
sudo smartctl /dev/sda1 -a
), le 202 est inconnu, mais la valeur de 90 (dans mon cas) correspond à la description du pdf et indique 90% de durée de vie restante. Cela peut être mis à l'échelle de manière appropriée par le TBW qui est donné dans la documentation cruciale.com sur le lecteur que vous avez. En fait, la durée de vie restante est plutôt plus utile.la source
La réponse acceptée a gonflé la sortie, trop de sorcellerie inutile et cache les noms de paramètres initiaux
smartctl
. Voici une meilleure version;exemple de sortie:
et le one-liner
la source