xref: /freebsd/usr.sbin/periodic/etc/daily/404.status-zfs (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*81ea85a8SBrad Davis#!/bin/sh
2*81ea85a8SBrad Davis#
3*81ea85a8SBrad Davis#
4*81ea85a8SBrad Davis
5*81ea85a8SBrad Davis# If there is a global system configuration file, suck it in.
6*81ea85a8SBrad Davis#
7*81ea85a8SBrad Davisif [ -r /etc/defaults/periodic.conf ]
8*81ea85a8SBrad Davisthen
9*81ea85a8SBrad Davis    . /etc/defaults/periodic.conf
10*81ea85a8SBrad Davis    source_periodic_confs
11*81ea85a8SBrad Davisfi
12*81ea85a8SBrad Davis
13*81ea85a8SBrad Daviscase "$daily_status_zfs_enable" in
14*81ea85a8SBrad Davis    [Yy][Ee][Ss])
15*81ea85a8SBrad Davis	echo
16*81ea85a8SBrad Davis	echo 'Checking status of zfs pools:'
17*81ea85a8SBrad Davis
18*81ea85a8SBrad Davis	case "$daily_status_zfs_zpool_list_enable" in
19*81ea85a8SBrad Davis	    [Yy][Ee][Ss])
20*81ea85a8SBrad Davis		lout=`zpool list`
21*81ea85a8SBrad Davis		echo "$lout"
22*81ea85a8SBrad Davis		echo
23*81ea85a8SBrad Davis		;;
24*81ea85a8SBrad Davis	    *)
25*81ea85a8SBrad Davis		;;
26*81ea85a8SBrad Davis	esac
27*81ea85a8SBrad Davis	sout=`zpool status -x`
28*81ea85a8SBrad Davis	echo "$sout"
29*81ea85a8SBrad Davis	# zpool status -x always exits with 0, so we have to interpret its
30*81ea85a8SBrad Davis	# output to see what's going on.
31*81ea85a8SBrad Davis	if [ "$sout" = "all pools are healthy" \
32*81ea85a8SBrad Davis	    -o "$sout" = "no pools available" ]; then
33*81ea85a8SBrad Davis		rc=0
34*81ea85a8SBrad Davis	else
35*81ea85a8SBrad Davis		rc=1
36*81ea85a8SBrad Davis	fi
37*81ea85a8SBrad Davis	;;
38*81ea85a8SBrad Davis
39*81ea85a8SBrad Davis    *)
40*81ea85a8SBrad Davis	rc=0
41*81ea85a8SBrad Davis	;;
42*81ea85a8SBrad Davisesac
43*81ea85a8SBrad Davis
44*81ea85a8SBrad Davisexit $rc
45