I’m setting up cron job for a storage server using ZFS. There’s zpool status -x
but it returns “all pools are healthy” (or “no pools available”) on no error and prints errors to stdout (instead of stderr), rendering it annoying for cron job.
#!/bin/sh set -e set -u zstatus="`zpool status -x 2>&1`" case "${zstatus}" in "all pools are healthy"|"no pools available") return 0 ;; *) printf "%sn" "${zstatus}" >&2 return 1 ;; esac
Put it in a file (e.g. /root/bin/zpool-status-cron
), make it executable, and add it to crontab.