So after looking around this morning for a simple file system script to alert me when my ZFS pools have problems on my new file server I found a few, the problem was none worked correctly. Strangely these scripts were extremely simple so I was a bit surprised any hand problems. Because of this I took five minutes to knock together a portable perl script to email you in the event of problems:
#!/usr/bin/perl
our @users = qw(root);
our $zpool = "/sbin/zpool";
use strict;
use Sys::Hostname;
use IPC::Open3;
our $stat;
chomp($stat=`zpool status -x | head -1 | awk '{print \$4}'`);
if($stat ne 'healthy'){
my $data = ("Date: " . scalar(localtime()) . "\n") .
("Hostname: " . hostname()) .
"\n" .
`$zpool status -x` .
"\n";
my $pid = open3(\*CHLDIN, \*CHLDOUT, \*CHLDERR,
"mail", "-s", "ZFS Pool errors detected: " . hostname(), @users);
print CHLDIN $data;
}