Smartd et envoi de mail systématique

Bonjour à tous,

Je cherche à effectuer des tests S.M.A.R.T et à être informé par email des résultats.

J’ai installé smartmontools, activé le mode daemon dans /etc/default/smarmontools et je configure /etc/smartd.conf pour y décrire le mode de fonctionnement que je recherche…

Je bloque pour l’envoi de mail. Le man indique que -s permet l’envoi de mail mais seulement si des erreurs sont trouvées alors :

  • pour tester c’est sympa quand le disque est en bonne santé :slightly_smiling:
  • je préférerais recevoir le mail systématiquement

A ce jour je n’ai jamais reçu de mail grâce à ce mécanisme, je ne sais pas trop comment m’y prendre… J’ai inscrit les lignes suivantes dans mon fichiers /etc/smartd.conf pour faire des tests les heures qui suivent mais de toute façon, avec l’option -s, je pense que cela ne fonctionnera pas si le disque est en bonne santé :frowning:

[code]DEVICESCAN -m mon@mail.fr -M exec /usr/share/smartmontools/smartd-runner -s S/…/…/./18
DEVICESCAN -m mon@mail.fr -M exec /srv/script/smartd.sh -s S/…/…/./19
DEVICESCAN -m mon@mail.fr -M exec /usr/share/smartmontools/smartd-runner -s L/…/…/./20
DEVICESCAN -m mon@mail.fr -M exec /srv/script/smartd.sh -s L/…/…/./21

/dev/sda -m mon@mail.fr -M exec /usr/share/smartmontools/smartd-runner -s S/…/…/./22
/dev/sda -m mon@mail.fr -M exec /srv/script/smartd.sh -s S/…/…/./23
/dev/sda -m mon@mail.fr -M exec /usr/share/smartmontools/smartd-runner -s L/…/…/./00
/dev/sda -m mon@mail.fr -M exec /srv/script/smartd.sh -s L/…/…/./01
[/code]

Pour info, smartd.sh ressemble à ceci (trouvé sur l’excellent Léa-Linux et presque pas modifié) :

[code]#!/bin/bash

Sauvegarde du corps de mail standard

tmp=$(tempfile)
cat > $tmp

On ajoute le résultat de « smartctl -a » dans le corps de mail

/usr/sbin/smartctl -a -d $smartd_DEVICETYPE $smartd_DEVICE >> $tmp

On envoie l’ e-mail

/bin/mail -s “$smartd_SUBJECT” $smartd_ADDRESS < $tmp

rm -f $tmp

exit 0

[/code]

Quelqu’un aurait une expérience suffisante en la matière pour me conseiller (principalement sur cette question du mail systématique, pour le reste : je crois avoir compris comment cela fonctionne bien que je sois prêt à recevoir des commentaires !). Par exemple, j’espère ajouter les infos smartctl complètes dans le mail, comme le laisse apparaître mon script smartd.sh.

Merci d’avance pour votre aide :slightly_smiling:

En utilisant la commande suivante (je peux par exemple la mettre dans le cron de root), j’obtiens un résultat très sympa dans ma boîte mail :

[code]smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright © 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model: WDC WD3200BEVT-22ZCT0
Serial Number: WD-WXT0A4957607
Firmware Version: 11.01A11
User Capacity: 320 071 851 520 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Sat Apr 10 22:19:47 2010 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (9600) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 113) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
SCT capabilities: (0x303f) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 188 187 021 Pre-fail Always - 1583
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 47
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 095 095 000 Old_age Always - 4113
10 Spin_Retry_Count 0x0033 100 253 051 Pre-fail Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 46
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 19
193 Load_Cycle_Count 0x0032 130 130 000 Old_age Always - 212518
194 Temperature_Celsius 0x0022 114 097 000 Old_age Always - 33
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 253 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0009 200 200 051 Pre-fail Offline - 0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error

1 Short offline Completed without error 00% 4109 -

2 Short offline Completed without error 00% 4108 -

3 Short offline Completed without error 00% 4107 -

4 Extended offline Completed without error 00% 4107 -

5 Extended offline Aborted by host 90% 4105 -

6 Extended offline Aborted by host 90% 4105 -

7 Extended offline Aborted by host 90% 4105 -

8 Extended offline Aborted by host 70% 4105 -

9 Short offline Completed without error 00% 4104 -

SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright © 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model: WDC WD20EADS-32S2B0
Serial Number: WD-WCAVY1297696
Firmware Version: 01.00A01
User Capacity: 2 000 398 934 016 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Sat Apr 10 22:19:47 2010 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status: (0x84) Offline data collection activity
was suspended by an interrupting command from host.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (38100) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 255) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
SCT capabilities: (0x303f) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 216 148 021 Pre-fail Always - 6200
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 18
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 100 253 000 Old_age Always - 0
9 Power_On_Hours 0x0032 097 097 000 Old_age Always - 2427
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 17
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 6
193 Load_Cycle_Count 0x0032 178 178 000 Old_age Always - 67267
194 Temperature_Celsius 0x0022 110 103 000 Old_age Always - 42
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error

1 Short offline Completed without error 00% 2423 -

2 Short offline Completed without error 00% 2422 -

3 Short offline Completed without error 00% 2421 -

SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

[/code]

Mais est-ce aussi fiable que les tests courts/longs qu’on peut faire avec le mode daemon ? Je ne sais pas vraiment la différence vu que je n’ai jamais reçu de mail grâce à ce dernier :slightly_smiling: Qu’en pensez-vous ? Est-il possible d’obtenir ce genre de chose avec le daemon (ce que je préférerais) ? Si la réponse est non, ma méthode est-elle une bonne alternative ?

J’ai compris ce qui me bloquait…

Smartd permet de demander des analyses des disques durs (short ou long) à un rythme qui nous convient et permettra par exemple d’envoyer des mails si un indicateur est mauvais.

Il est donc possible d’ajouter un smartctl -a au contenu du mail dans la foulée mais le mail par défaut ne fait que dénoncer l’indicateur mis à mal.

Je vais donc faire deux choses :

  • Configurer mon smartd.conf pour qu’un test court soit fait chaque nuit et un plus long le dimanche (et c’est tout, il sera alors tant de faire un smartctl -a pour avoir des infos…) ;
  • Mettre un smartctl -a dans mon cron pour qu’il me maile les infos chaque dimanche !

A bon entendeur.

Question probablement idiote : quel est l’intérêt dans ton cas d’utiliser smartd alors que smartctl permet d’effectuer tout aussi bien les tests courts/longs (et donc, cron+mail sans souci) ?
J’ai loupé quoi ?

Je ne détiens aucune vérité (contredisez-moi…) mais d’après ce que j’ai compris :

  • smartd est la manière élégante de programmer ses test (pour actualiser les valeurs de smartctl -a) ;
  • smartd n’envoie de mail que s’il détecte une erreur (et si on lui demande bien-sûr) d’où l’intérêt si l’on veut contrôler soi-même les infos des disques de se mailer smartctl -a via le cron ;
  • smartd est intéressant en cela qu’il permet d’associer à la détection d’une erreur une action particulière (par exemple : mail de smartctl -a + shutdown -t now).

Pas mal non ?

Ok, j’avais loupé la partie commandes supplémentaires que tu utilises également, je suppose.
J’avais bêtement cru que tu voulais juste envoyer un mail systématiquement après les self-tests. :mrgreen:

Par contre pour ton premier point je suis un poil surpris… c’est censé se mettre à jour tout seul, non ?

J’ai cru lire dans /etc/default/smartmontools un intervalle de mise à jour automatique à 30 minutes. Je crois que les tests longs et courts sont encore d’autres choses ? Configurable dans smartd.conf.