[gull] Truc et astuces: check mdstat
felix
felix at f-hauri.ch
Tue Mar 22 13:18:07 CET 2016
Voilà, il s'agit d'un cas particulier où la machine de backup (un nas
raid iomega hacké) est incapable d'envoyer un mail.
Du coup, le serveur qui à un accès ssh à la machine de backup peut:
ssh backup cat /proc/mdstat
ou
for shell in {"ssh backup ",}/bin/bash;do
$shell <<<'sed "s/^/$HOSTNAME:\ /" /proc/mdstat'
done
Qui répond qqch comme:
backup: Personalities : [raid1]
backup: md1 : active raid1 sdb2[0] sda2[1]
backup: 3274597760 blocks [2/2] [UU]
backup:
backup: md0 : active raid1 sdb1[0] sda1[2]
backup: 204608 blocks super 1.2 [2/2] [UU]
backup:
backup: unused devices: <none>
server: Personalities : [raid1]
server: md0 : active raid1 sda1[0] sda2[1]
server: 2374556480 blocks [2/2] [UU]
server:
server: unused devices: <none>
(Lorsque tous les disques sont présent, je dois lire 3x `UU`)
Voici donc un petit (8 lignes) script à executer périodiquement, pour
envoyer un mail en cas de problème:
#!/bin/bash
TO=admin at exemple.ch
SUBJECT="MDStat survey alert"
BODY=$(for shell in {"ssh backup ",}/bin/bash;do
$shell <<<'sed "s/^/$HOSTNAME:\ /" /proc/mdstat'
done)
[ -z "$BODY" ] || [ -n "${BODY//*UU*UU*UU*}" ] &&
mail -s "$SUBJECT" $TO <<<"${BODY:-No mdstat files.}"
J'utilise /bin/bash pour assurer que la variable HOSTNAME soit renseignée.
Si `$BODY` est vide ou s'il contient moins de 3x `UU`, j'envoie un mail
contenant les deux mdstats ou un message indiquant un problème
(nb: je n'aime pas les regex en bash: lourd et syntaxe pas claire)
--
Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
More information about the gull
mailing list