From 45e7dea7a10d3e2e2092e0272d705fc2cf34becc Mon Sep 17 00:00:00 2001 From: Peter Doherty Date: Sat, 16 Jul 2016 14:47:56 -0400 Subject: [PATCH 1/2] If a pool is named something like "m" or "ra" or any string that matches the types of zpool, the grep will match multiple lines. Adding a space after the zlabel will allow for more exact matching. --- plugins/zfs/zpool_iostat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/zfs/zpool_iostat b/plugins/zfs/zpool_iostat index 51c606e6..8149ef36 100755 --- a/plugins/zfs/zpool_iostat +++ b/plugins/zfs/zpool_iostat @@ -40,9 +40,9 @@ echo $zlist | tr ' ' '\n' | while read iz; do *) name=`echo $iz | gawk '{ gsub("[^a-zA-Z0-9_]", "_", $1); print $1 }'` ;; esac echo -n $name'_read.value ' - grep '^[ ]*'$zlabel $ztmp|gawk '{print $6}'|gawk '/M/ {print strtonum($1)*1000}; /K/ {print strtonum($1)}; /[0-9]$/ {print int($1)/1000}' + grep '^[ ]*'$zlabel\ $ztmp|gawk '{print $6}'|gawk '/M/ {print strtonum($1)*1000}; /K/ {print strtonum($1)}; /[0-9]$/ {print int($1)/1000}' echo -n $name'_write.value ' - grep '^[ ]*'$zlabel $ztmp|gawk '{print $7}'|gawk '/M/ {print strtonum($1)*1000}; /K/ {print strtonum($1)}; /[0-9]$/ {print int($1)/1000}' + grep '^[ ]*'$zlabel\ $ztmp|gawk '{print $7}'|gawk '/M/ {print strtonum($1)*1000}; /K/ {print strtonum($1)}; /[0-9]$/ {print int($1)/1000}' done rm $ztmp; touch $ztmp From 50537fa5b940afc8ba9876a22806ad830d1f01be Mon Sep 17 00:00:00 2001 From: Peter Doherty Date: Sun, 16 Oct 2016 19:08:49 -0400 Subject: [PATCH 2/2] improved readability, and eliminate a grep --- plugins/zfs/zpool_iostat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/zfs/zpool_iostat b/plugins/zfs/zpool_iostat index 8149ef36..a2e2c22a 100755 --- a/plugins/zfs/zpool_iostat +++ b/plugins/zfs/zpool_iostat @@ -40,9 +40,9 @@ echo $zlist | tr ' ' '\n' | while read iz; do *) name=`echo $iz | gawk '{ gsub("[^a-zA-Z0-9_]", "_", $1); print $1 }'` ;; esac echo -n $name'_read.value ' - grep '^[ ]*'$zlabel\ $ztmp|gawk '{print $6}'|gawk '/M/ {print strtonum($1)*1000}; /K/ {print strtonum($1)}; /[0-9]$/ {print int($1)/1000}' + gawk '{ if ($1 == "'"$zlabel"'") print $6; }' "$ztmp"|gawk '/M/ {print strtonum($1)*1000}; /K/ {print strtonum($1)}; /[0-9]$/ {print int($1)/1000}' echo -n $name'_write.value ' - grep '^[ ]*'$zlabel\ $ztmp|gawk '{print $7}'|gawk '/M/ {print strtonum($1)*1000}; /K/ {print strtonum($1)}; /[0-9]$/ {print int($1)/1000}' + gawk '{ if ($1 == "'"$zlabel"'") print $7; }' "$ztmp"|gawk '/M/ {print strtonum($1)*1000}; /K/ {print strtonum($1)}; /[0-9]$/ {print int($1)/1000}' done rm $ztmp; touch $ztmp