diff --git a/checks/md b/checks/md index 60a8e41e43b..07301630448 100644 --- a/checks/md +++ b/checks/md @@ -72,6 +72,21 @@ # unused devices: # ---------------------------------------------------------- +# Example of RAID5 being checked +#Personalities : [raid1] [raid6] [raid5] [raid4] +#md125 : active raid1 sdb2[0] sdd2[1] +# 182751552 blocks super 1.2 [2/2] [UU] +# bitmap: 1/2 pages [4KB], 65536KB chunk +# +#md126 : active raid5 sdf1[5] sde1[2] sdc1[1] sdg1[3] sda1[0] +# 31255568384 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU] +# [===============>.....] check = 76.0% (5938607824/7813892096) finish=255.8min speed=122145K/sec +# bitmap: 0/59 pages [0KB], 65536KB chunk +# +#md127 : active raid1 sdd1[1] sdb1[0] +# 67107840 blocks super 1.2 [2/2] [UU] +# bitmap: 1/1 pages [4KB], 65536KB chunk + # And now for something completely different: # --------------------------------------------------------- # Personalities : [raid1] [raid10] @@ -122,7 +137,7 @@ def parse_md(info): if e.startswith("finish=") or e.startswith("speed="): k, v = e.split("=") instance[k] = v - elif e in ["recovery", "resync"]: + elif e in ["recovery", "resync", "check"]: instance["%s_values" % e] = line[idx + 3] continue @@ -193,7 +208,12 @@ def check_md(item, _no_params, parsed): if "speed" in data: infotexts.append("Speed: %s" % data["speed"]) - if infotexts: + if "check_values" in data: + header = "[Check]" + infotexts.append("Status: %s" % data["check_values"]) + yield 0, "%s %s" % (header, ", ".join(infotexts)) + + elif infotexts: yield 1, "%s %s" % (header, ", ".join(infotexts))