cron: Do not error if already scrubbing
If a pool is already scrubbing, zpool scrub will return an error. This breaks the cron scrub script. It outputs that error and then does not scrub any further pools. This change checks to see if the pool is scrubbing before attempting to start a scrub. This addresses long-running scrubs. Note that a "long-running" scrub here is not necessarily a month long. If the system is shut off or the pool is exported, the scrub will resume later. (cherry picked from 41e457da7bfc837a52f3389cb6961bc6737b874d [0]) [0] https://salsa.debian.org/zfsonlinux-team/zfs.git Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
This commit is contained in:
parent
9fda81f807
commit
4472322f60
@ -1,9 +1,12 @@
|
||||
#!/bin/sh -eu
|
||||
|
||||
# Scrub all healthy pools.
|
||||
# Scrub all healthy pools that are not already scrubbing.
|
||||
zpool list -H -o health,name 2>&1 | \
|
||||
awk 'BEGIN {FS="\t"} {if ($1 ~ /^ONLINE/) print $2}' | \
|
||||
while read pool
|
||||
do
|
||||
zpool scrub "$pool"
|
||||
if ! zpool status "$pool" | grep -q "scrub in progress"
|
||||
then
|
||||
zpool scrub "$pool"
|
||||
fi
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user