diff options
Diffstat (limited to 'etc')
-rw-r--r-- | etc/defaults/periodic.conf | 3 | ||||
-rw-r--r-- | etc/periodic/daily/405.status-ata-raid | 33 | ||||
-rw-r--r-- | etc/periodic/daily/Makefile | 1 |
3 files changed, 37 insertions, 0 deletions
diff --git a/etc/defaults/periodic.conf b/etc/defaults/periodic.conf index bcb1c7f..f6e3fce 100644 --- a/etc/defaults/periodic.conf +++ b/etc/defaults/periodic.conf @@ -85,6 +85,9 @@ daily_news_expire_enable="YES" # Run news.expire daily_status_disks_enable="YES" # Check disk status daily_status_disks_df_flags="-k -t nonfs" # df(1) flags for check +# 405.status-ata_raid +status_ata_raid_enable="NO" # Check ATA raid status + # 420.status-network daily_status_network_enable="YES" # Check network status daily_status_network_usedns="YES" # DNS lookups are ok diff --git a/etc/periodic/daily/405.status-ata-raid b/etc/periodic/daily/405.status-ata-raid new file mode 100644 index 0000000..f217839 --- /dev/null +++ b/etc/periodic/daily/405.status-ata-raid @@ -0,0 +1,33 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# 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_ata_raid_enable" in + [Yy][Ee][Ss]) + echo + echo 'Checking status of ATA raid partitions:' + + rc=0 + for raid in `find /dev/ -name 'ar[0-9]*' -type c | egrep '[0-9]$' \ + | egrep -v 's[0-9]' | cut -d / -f 3` + do + status=`/sbin/atacontrol status $raid` + echo $status + raid_rc=`echo $status | grep -v READY | wc -l` + [ $rc -eq 0 ] && [ $raid_rc -gt 0 ] && rc=3 + done + ;; + + *) rc=0;; +esac + +exit $rc diff --git a/etc/periodic/daily/Makefile b/etc/periodic/daily/Makefile index 44f0c5c..04ea0e8 100644 --- a/etc/periodic/daily/Makefile +++ b/etc/periodic/daily/Makefile @@ -13,6 +13,7 @@ FILES= 100.clean-disks \ 330.news \ 400.status-disks \ 420.status-network \ + 405.status-ata-raid \ 430.status-rwho \ 440.status-mailq \ 450.status-security \ |