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