diff options
Diffstat (limited to 'etc/periodic/daily/800.scrub-zfs')
-rwxr-xr-x | etc/periodic/daily/800.scrub-zfs | 14 |
1 files changed, 10 insertions, 4 deletions
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 |