6 votes

Quelle commande ou programme terminal peut répertorier les heures d'activité d'un SSD?

Je cherche à scripter en utilisant le shell Unix la récupération des données SSD (et HDD) que l'utilitaire de disque montre dans la fenêtre d'information.

Informations sur l'utilitaire de disque

Je suis particulièrement intéressé par les heures d'alimentation et les cycles d'alimentation, mais si toutes les données proviennent d'une seule structure de données ou d'un seul outil, tant mieux. Les outils habituels diskutil info disk0 et ioreg -l ne produisent pas les valeurs "d'intérêt" répertoriées dans la capture d'écran ci-dessus.

Ces informations sont-elles disponibles à partir de l'un des outils de terminal intégrés à OS X ou dois-je localiser un package open source qui effectue les mêmes appels API pour obtenir ce niveau de détail sur un lecteur Mac ?

8voto

jaume Points 13186

La commande qui fonctionne pour moi en 2019 est :

smartctl -a disk0 | grep -i hours

L'installation de Homebrew est probablement la plus simple et voici quelques détails sur l'installation et l'utilisation de l'outil.


smartmontools est un package open source qui fournit la plupart des valeurs qui vous intéressent.

Si vous utilisez Homebrew, installez-le avec :

brew install smartmontools

(Dans l'installation standard de Homebrew, les commandes s'installent dans /usr/local/bin.)

Sinon, téléchargez-le depuis https://www.smartmontools.org/wiki/Download et compilez-le comme d'habitude :

$ cd smartmontools-6.0
$ ./configure 
$ make
$ sudo make install

(Sauf indication contraire en tant qu'option de ./configure, les commandes smartmontools s'installent dans /usr/local/sbin, donc mettez à jour la variable $PATH si nécessaire.)

L'outil qui nous intéresse s'appelle smartctl.

Activez d'abord S.M.A.R.T. :

$ smartctl /dev/disk0 -s on

Ensuite, exécutez-le :

$ smartctl /dev/disk0 -x

Il s'agit d'un extrait de la sortie, qui fournit une grande quantité d'informations. Les valeurs de Power_On_Hours et Power_Cycle_Count ci-dessous correspondent (une fois converties de décimal en hexadécimal) à celles rapportées par l'Utilitaire de disque.

smartctl 6.0 2012-10-10 r3643 [x86_64-apple-darwin12.2.0] (construction locale)
Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org

=== SECTION D'INFORMATIONS DE DÉMARRAGE ===
Famille de modèles : SSD basés sur JMicron
Modèle du périphérique : APPLE SSD TS128C
Numéro de série : 37AR11AGLTMZ
Version du firmware : CJAA0201
Capacité utilisateur : 121,332,826,112 octets [121 Go]
Taille de secteur : 512 octets logiques/physiques
Vitesse de rotation : Périphérique à état solide
Le périphérique est : Dans la base de données smartctl [pour plus de détails, utilisez : -P show]
Version ATA : ATA8-ACS (révision mineure non indiquée)
Version SATA : SATA 2.6, 3.0 Gb/s (actuelle : 3.0 Gb/s)

(...)

Structure de données des attributs SMART numéro de révision : 16
Attributs SMART spécifiques au fournisseur avec seuils :
ID# NOM_DE_ATTRIBUT         DRAPEAUX   VALEUR LE PLUS MAUVAIS SEUIL ÉCHEC VALEUR_BRUTE
  1 Raw_Read_Error_Rate     -O-R--   099   099   000    -    0
  2 Throughput_Performance  P-S---   100   100   050    -    0
  5 Reallocated_Sector_Ct   PO--C-   100   100   050    -    0
  9 Power_On_Hours          -O--C-   100   100   000    -    3237
 12 Power_Cycle_Count       -O--C-   100   100   000    -    1485
168 SATA_Phy_Error_Count    -O--C-   100   100   000    -    0
170 Bad_Block_Count         PO--C-   100   100   010    -    8 252 82
173 Erase_Count             PO--C-   196   196   100    -    1 136 64
175 Bad_Cluster_Table_Count PO--C-   100   100   010    -    0
192 Unexpect_Power_Loss_Ct  -O--C-   100   100   000    -    14
194 Temperature_Celsius     PO---K   072   053   030    -    28 (Min/Max 14/47)
197 Current_Pending_Sector  -O--C-   100   100   000    -    0
199 UDMA_CRC_Error_Count    -O--C-   100   100   000    -    0
                            ||||||_ K auto-keep
                            |||||__ C compte d'événements
                            ||||___ R taux d'erreur
                            |||____ S vitesse/performance
                            ||_____ O mis à jour en ligne
                            |______ P avertissement d'avarie imminente

La commande ATA_READ_LOG_EXT (adresse=0x00:0x00, page=0, n=1) a échoué : commandes ATA 48 bits non prises en charge
La lecture du répertoire de log GP a échoué

Version du répertoire de log SMART 1 [prise en charge du log multi-secteurs]
Le log SMART à l'adresse 0x00 comporte    1 secteurs [Répertoire de log]
Le log SMART à l'adresse 0x01 comporte    1 secteurs [Journal des erreurs SMART résumées]
Le log SMART à l'adresse 0x02 comporte   51 secteurs [Journal des erreurs SMART détaillées]
Le log SMART à l'adresse 0x06 comporte    1 secteurs [Journal SMART des auto-tests]
Le log SMART à l'adresse 0x09 comporte    1 secteurs [Journal des auto-tests sélectifs]
Le log SMART à l'adresse 0x80 comporte   16 secteurs [Journal spécifique au fournisseur hôte]
(...)
Le log SMART à l'adresse 0x9f comporte   16 secteurs [Journal spécifique au fournisseur hôte]
Le log SMART à l'adresse 0xe0 comporte    1 secteurs [Commande/Statut SCT]
Le log SMART à l'adresse 0xe1 comporte    1 secteurs [Transfert de données SCT]

Le log étendu SMART de journal des erreurs (GP Log 0x03) n'est pas pris en charge

Version du journal des erreurs SMART : 1
Aucune erreur enregistrée

Le journal étendu des auto-tests SMART (GP Log 0x07) n'est pas pris en charge

La structure du journal des auto-tests SMART révision numéro 1
Num  Description des tests    Statut                  Restant  Durée_de_vie(heures)  LBA_de_erreur_initiale

La structure des données du journal des auto-tests sélectifs révision numéro 1
SPAN  MIN_LBA  MAX_LBA  ÉTAT_DU_TEST_ACTUEL
    1        0        0  Pas de test
    2        0        0  Pas de test
    3        0        0  Pas de test
    4        0        0  Pas de test
    5        0        0  Pas de test
Drapeaux de tests sélectifs (0x0) :
  Après le balayage des plages sélectionnées, NE PAS balayer le reste du disque.
Si un auto-test sélectif est en attente au démarrage, reprenez après un délai de 0 minute.

Version du statut SCT :                  3
Version SCT (spécifique au fournisseur) :       1 (0x0001)
Niveau de support SCT :                   0
État du périphérique :                        Actif (0)
Température actuelle :                    28 Celsius
Cycle d'alimentation Température Min/Max :     22/30 Celsius
Cycle de vie Température Min/Max :     14/47 Celsius
Compte des limites de température supérieure/inférieure :   0/0
Version de l'historique de températures SCT :     2
Période d'échantillonnage des températures :         1 minute
Intervalle de journalisation des températures :        1 minute
Température recommandée Min/Max :      5/40 Celsius
Limite de température Min/Max :            0/70 Celsius
Taille de l'historique de températures (Index) :    128 (77)

Index    Temps estimé   Température Celsius
  78    2012-11-29 19:48    25  ******
 ...    ..(  7 ignorés).    ..  ******
  86    2012-11-29 19:56    25  ******
  87    2012-11-29 19:57    26  *******
 ...    ..( 19 ignorés).    ..  *******
 107    2012-11-29 20:17    26  *******
 108    2012-11-29 20:18    27  ********
 ...    ..( 16 ignorés).    ..  ********
 125    2012-11-29 20:35    27  ********
 126    2012-11-29 20:36    28  *********
 ...    ..(  7 ignorés).    ..  *********
   6    2012-11-29 20:44    28  *********
   7    2012-11-29 20:45    29  **********
   8    2012-11-29 20:46    29  **********
   9    2012-11-29 20:47    28  *********
 ...    ..( 67 ignorés).    ..  *********
  77    2012-11-29 21:55    28  *********

SMART WRITE LOG ne renvoie pas le compteur et le registre LBA_LOW
La commande de contrôle de récupération d'erreur SCT (Get) a échoué

Statistiques du périphérique (Journal GP 0x04) non prises en charge

La commande ATA_READ_LOG_EXT (adresse=0x11:0x00, page=0, n=1) a échoué : commandes ATA 48 bits non prises en charge
La lecture des compteurs d'événements SATA Phy a échoué

Pour finir, désactivez S.M.A.R.T. :

$ smartctl /dev/disk0 -s off

1voto

Dennis Cheung Points 11818

Que diriez-vous d'utiliser la commande intégrée system_profiler ?

system_profiler -listDataTypes
system_profiler SPSerialATADataType
system_profiler -xml SPSerialATADataType

Les Mac plus récents ont des lecteurs NVMe et non des lecteurs SATA, donc vous commenceriez par system_profiler SPNVMeDataType pour obtenir les noms BSD et d'autres données qui ne sont pas aussi détaillées que les heures d'activité. La commande smartctl -a disk0 | grep -I hours de smartmontools est l'outil en ligne de commande idéal pour plus de détails sur le matériel de stockage.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X