aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/periodic/etc/daily/404.status-zfs
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/periodic/etc/daily/404.status-zfs')
-rwxr-xr-xusr.sbin/periodic/etc/daily/404.status-zfs44
1 files changed, 44 insertions, 0 deletions
diff --git a/usr.sbin/periodic/etc/daily/404.status-zfs b/usr.sbin/periodic/etc/daily/404.status-zfs
new file mode 100755
index 000000000000..052f794c0bbc
--- /dev/null
+++ b/usr.sbin/periodic/etc/daily/404.status-zfs
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+#
+
+# 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:'
+
+ case "$daily_status_zfs_zpool_list_enable" in
+ [Yy][Ee][Ss])
+ lout=`zpool list`
+ echo "$lout"
+ echo
+ ;;
+ *)
+ ;;
+ esac
+ sout=`zpool status -x`
+ echo "$sout"
+ # zpool status -x always exits with 0, so we have to interpret its
+ # output to see what's going on.
+ if [ "$sout" = "all pools are healthy" \
+ -o "$sout" = "no pools available" ]; then
+ rc=0
+ else
+ rc=1
+ fi
+ ;;
+
+ *)
+ rc=0
+ ;;
+esac
+
+exit $rc