diff options
Diffstat (limited to 'sysutils/areca-cli/files/407.status-areca-raid.in')
-rw-r--r-- | sysutils/areca-cli/files/407.status-areca-raid.in | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/sysutils/areca-cli/files/407.status-areca-raid.in b/sysutils/areca-cli/files/407.status-areca-raid.in deleted file mode 100644 index 8276457ed8b4..000000000000 --- a/sysutils/areca-cli/files/407.status-areca-raid.in +++ /dev/null @@ -1,143 +0,0 @@ -#!/bin/sh -# -# Shows status of areca RAID controllers: arcmsr(4) -# -# Authors: Bjoern A. Zeeb -# -# $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 - -# Defaults. -: ${daily_status_arcmsr_raid_enable:=NO} -# Verbose. -: ${daily_status_arcmsr_raid_verbose:=YES} -# SMART. -: ${daily_status_arcmsr_raid_smart:=YES} -# Logs persist between "areca-cli event info" invocation? -: ${daily_status_arcmsr_raid_persist_logs:=YES} - -areca_cli=${areca_cli:-%%PREFIX%%/sbin/areca-cli} -logdir=${logdir:-/var/log} - -verbose() -{ - local cmd - local scmd - local log - cmd=$1 - scmd=$2 - log=$3 - - case ${daily_status_arcmsr_raid_verbose} in - [Nn][Oo]) - return - ;; - *) ;; - esac - - ${areca_cli} ${cmd} ${scmd} >> ${log} -} - -smart() -{ - local log - local disk - log=$1 - - case ${daily_status_arcmsr_raid_smart} in - [Nn][Oo]) - return - ;; - *) ;; - esac - - for disk in `${areca_cli} disk info | awk ' - BEGIN { run=0 } - { if (/^=======/) { - if (run==0) { run=1; } else { run=0; } } - else { if (run==1) { printf "%d ", $1; } } };'`; do - echo "SMART data for disk ${disk}" >> ${log} - ${areca_cli} disk smart drv=${disk} >> ${log} - done -} - -case "$daily_status_arcmsr_raid_enable" in - [Yy][Ee][Ss]) - echo - echo 'Checking status of Areca RAID controllers:' - - rc=0 - - # Checking the currently selected (1st) controller. - # XXX TODO set curctrl=[1..4]; along with that - # XXX TODO try to only call areca-cli once (per ctrl). - echo "" - echo "Controller ${ctrl}:" - ctrl_log=${logdir}/arcmsr_raid_${ctrl} - if test ! -f ${ctrl_log}.today; then - touch ${ctrl_log}.today - fi - mv -f ${ctrl_log}.today ${ctrl_log}.yesterday - # Not too efficient to call areca_cli lots of times. - verbose sys info ${ctrl_log}.today - ${areca_cli} rsf info >> ${ctrl_log}.today - verbose vsf info ${ctrl_log}.today - verbose disk info ${ctrl_log}.today - smart ${ctrl_log}.today - verbose hw info ${ctrl_log}.today - lines=`wc -l ${ctrl_log}.today | awk '{ print $1 }'` - diff -u -$lines ${ctrl_log}.yesterday ${ctrl_log}.today - raid_rc=$? - if test $raid_rc -eq 0; then - cat ${ctrl_log}.today - fi - [ $rc -eq 0 ] && [ $raid_rc -ne 0 ] && rc=3 - - # Checking logs. - echo "Logs (most recent first):" - logs_log=${logdir}/arcmsr_log_${ctrl} - case "$daily_status_arcmsr_raid_persist_logs" in - [Yy][Ee][Ss]) - if test ! -f ${logs_log}.today; then - touch ${logs_log}.today - fi - mv -f ${logs_log}.today ${logs_log}.yesterday - ${areca_cli} event info > ${logs_log}.today - cmp -zs ${logs_log}.yesterday ${logs_log}.today - raid_rc=$? - if test $raid_rc -ne 0; then - diff -u ${logs_log}.yesterday ${logs_log}.today | \ - grep -v '^-\|^$' - fi - ;; - *) - raid_rc=0 - ${areca_cli} event info > ${logs_log}.today - ${areca_cli} event clear >> ${logs_log}.today - lines=`wc -l ${logs_log}.today | awk '{ print $1 }'` - if test $lines -gt 4; then - cat ${logs_log}.today - raid_rc=1 - fi - ;; - esac - if test $raid_rc -eq 0; then - echo " No new alarms." - fi - [ $rc -eq 0 ] && [ $raid_rc -ne 0 ] && rc=3 - ;; - - *) rc=0;; -esac - -exit $rc - -# end |