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; }