From 72db8e56861a54e3d2ddfca3de0f5a7354e1df2f Mon Sep 17 00:00:00 2001 From: jpaetzel Date: Tue, 25 Jan 2011 13:41:48 +0000 Subject: Fix logic error introduced in previous commit. Along the way make some efficiency improvements. Submitted by: jilles Approved by: kib (mentor) MFC after: 3 days --- etc/periodic/daily/800.scrub-zfs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'etc/periodic') diff --git a/etc/periodic/daily/800.scrub-zfs b/etc/periodic/daily/800.scrub-zfs index 01577c1..de139c2 100755 --- a/etc/periodic/daily/800.scrub-zfs +++ b/etc/periodic/daily/800.scrub-zfs @@ -5,6 +5,10 @@ # If there is a global system configuration file, suck it in. # + +newline=" +" # A single newline + if [ -r /etc/defaults/periodic.conf ] then . /etc/defaults/periodic.conf @@ -24,17 +28,19 @@ case "$daily_scrub_zfs_enable" in for pool in ${daily_scrub_zfs_pools}; do # sanity check - _status=$(zpool list ${pool} | sed -n -e '$p') + _status=$(zpool list "${pool}" 2> /dev/null) if [ $? -ne 0 ]; then echo " WARNING: pool '${pool}' specified in" echo " '/etc/periodic.conf:daily_scrub_zfs_pools'" echo " does not exist" continue fi - if echo ${_status} | grep -q FAULTED; then + _status=${_status##*$newline} + case ${_status} in + *FAULTED*) echo "Skipping faulted pool: ${pool}" - continue - fi + continue ;; + esac # successful only if there is at least one pool to scrub rc=0 -- cgit v1.1