add S.M.A.R.T. data collector
[metriccd.git] / client / meter / smart
blobe10c4596a53f38a170b13238b647011b18335d2f
1 #!/usr/bin/env bash
3 SMARTCTL()
5 smartctl -i -H -A -f brief -n standby "$@"
8 lsblk --list -o TYPE,RM,TRAN,PATH,MODEL,SERIAL | td-trans-fixcol -m 1 |\
9 td-filter TYPE eq disk |\
10 td-filter RM == 0 |\
11 td-select -H PATH MODEL SERIAL |\
12 while read -r devpath MODEL SERIAL
14 devbasename=${devpath##*/}
16 IFS=$'\n'
17 for whole_line in `IFS=$'\n\t '; SMARTCTL "$devpath"`
19 IFS=$'\n\t '
21 read attrid attrname flags value worst threshold fail raw rest <<<"$whole_line"
23 if [ "$attrid" -ge 0 -a "$value" -ge 0 -a "$worst" -ge 0 -a "$threshold" -ge 0 -a "$raw" -ge 0 ] 2>/dev/null
24 then
25 for leaf in value worst threshold raw
27 if [ $attrname = Unknown_Attribute ]
28 then
29 attrname=$attrid
30 else
31 attrname=${attrname,,}
32 attrname=${attrname//_/-}
34 value=${!leaf}
35 echo "$MODEL.$SERIAL.$attrname.$leaf $value"
36 done
38 done
39 done