Module: check_mk
Branch: master
Commit: 2a352c7298c6609c03604d0ca4fef01ead3cf157
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2a352c7298c660…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Dec 17 12:26:42 2013 +0100
FIX smart.stats: Remove duplicate disks
In same cases a disk has two physical paths and thus is seen
two times by the <tt>smart</tt> plugin for Linux. This plugin
has now been fixed and no longer outputs duplicate entries.
---
.werks/347 | 12 ++++++++++++
ChangeLog | 1 +
agents/plugins/smart | 7 +++++++
3 files changed, 20 insertions(+)
diff --git a/.werks/347 b/.werks/347
new file mode 100644
index 0000000..72ef9c1
--- /dev/null
+++ b/.werks/347
@@ -0,0 +1,12 @@
+Title: smart.stats: Remove duplicate disks
+Level: 1
+Component: checks
+Class: fix
+State: unknown
+Version: 1.2.5i1
+Date: 1387279511
+Targetversion: future
+
+In same cases a disk has two physical paths and thus is seen
+two times by the <tt>smart</tt> plugin for Linux. This plugin
+has now been fixed and no longer outputs duplicate entries.
diff --git a/ChangeLog b/ChangeLog
index 06fc932..a2b23fb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -50,6 +50,7 @@
* 0245 FIX: Inline SNMP now longer throws an exception when using SNMPv3
credentials...
* 0380 FIX: jolokia_metrics.mem: PNP-Template now handles non existant max values...
* 0381 FIX: win_printers: Fixed creation of duplicate services...
+ * 0347 FIX: smart.stats: Remove duplicate disks...
Multisite:
* 0371 Added log class filter to hostsvcevents view
diff --git a/agents/plugins/smart b/agents/plugins/smart
index a1727f4..a995367 100755
--- a/agents/plugins/smart
+++ b/agents/plugins/smart
@@ -23,6 +23,7 @@ if which smartctl > /dev/null 2>&1 ; then
fi
echo '<<<smart>>>'
+ SEEN=
for D in /dev/disk/by-id/{scsi,ata}-*; do
[ "$D" != "${D%scsi-\*}" ] && continue
[ "$D" != "${D%ata-\*}" ] && continue
@@ -45,6 +46,12 @@ if which smartctl > /dev/null 2>&1 ; then
continue
fi
+ # Avoid duplicate entries for same device
+ if [ "${SEEN//.$N./}" != "$SEEN" ] ; then
+ continue
+ fi
+ SEEN="$SEEN.$N."
+
# strip device name for final output
DNAME=${D#/dev/disk/by-id/scsi-}
DNAME=${DNAME#/dev/disk/by-id/ata-}