diff options
-rw-r--r-- | etc/defaults/periodic.conf | 3 | ||||
-rw-r--r-- | etc/periodic/daily/404.status-zfs | 36 | ||||
-rw-r--r-- | etc/periodic/daily/Makefile | 1 |
3 files changed, 40 insertions, 0 deletions
diff --git a/etc/defaults/periodic.conf b/etc/defaults/periodic.conf index d81ef22..9b10ca6 100644 --- a/etc/defaults/periodic.conf +++ b/etc/defaults/periodic.conf @@ -88,6 +88,9 @@ daily_news_expire_enable="YES" # Run news.expire daily_status_disks_enable="YES" # Check disk status daily_status_disks_df_flags="-l -h" # df(1) flags for check +# 404.status-zfs +daily_status_zfs_enable="NO" # Check ZFS + # 405.status-ata_raid daily_status_ata_raid_enable="NO" # Check ATA raid status diff --git a/etc/periodic/daily/404.status-zfs b/etc/periodic/daily/404.status-zfs new file mode 100644 index 0000000..81cc3e4 --- /dev/null +++ b/etc/periodic/daily/404.status-zfs @@ -0,0 +1,36 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# If there is a global system configuration file, suck it in. +# +if [ -r /etc/defaults/periodic.conf ] +then + . /etc/defaults/periodic.conf + source_periodic_confs +fi + +case "$daily_status_zfs_enable" in + [Yy][Ee][Ss]) + echo + echo 'Checking status of zfs pools:' + + out=`zpool status -x` + echo "$out" + # zpool status -x always exits with 0, so we have to interpret its + # output to see what's going on. + if [ "$out" = "all pools are healthy" \ + -o "$out" = "no pools available" ]; then + rc=0 + else + rc=1 + fi + ;; + + *) + rc=0 + ;; +esac + +exit $rc diff --git a/etc/periodic/daily/Makefile b/etc/periodic/daily/Makefile index f356afa..cee90ff 100644 --- a/etc/periodic/daily/Makefile +++ b/etc/periodic/daily/Makefile @@ -12,6 +12,7 @@ FILES= 100.clean-disks \ 310.accounting \ 330.news \ 400.status-disks \ + 404.status-zfs \ 405.status-ata-raid \ 406.status-gmirror \ 407.status-graid3 \ |