ports/172479: [patch] Add daily periodic script

Leonid Nevecherya nlv at imbera.ru
Mon Oct 8 08:40:12 UTC 2012


>Number:         172479
>Category:       ports
>Synopsis:       [patch] Add daily periodic script
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Oct 08 08:40:11 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Leonid Nevecherya
>Release:        
>Organization:
>Environment:
>Description:
Add daily periodic script cciss_vol_status. 
Script have parameters 
daily_cciss_vol_status_flags="-s" Default check SMART status of array disks,
daily_cciss_vol_status_extra_status_flags="-V" Default full programm output on problem array,
daily_cciss_vol_status_devices This is list of ciss devices to monitor or AUTO to monitor all devices.

The attachments is not a patch. It is script. Sorry.

>How-To-Repeat:

>Fix:


Patch attached with submission follows:

#!/bin/sh
# This is script to test CISS volumes
# Author: Leonid Nevecherya
# Maked from smart check script by original author: Garrett Wollman. $FreeBSD: ports/sysutils/smartmontools/files/smart.in,v 1.12 2011/12/01 20:53:31 dinoex Exp $
#


if [ -r /etc/defaults/periodic.conf ]; then
    . /etc/defaults/periodic.conf
    source_periodic_confs
fi

cciss_vol_status=/usr/local/bin/cciss_vol_status
: ${daily_cciss_vol_status_flags="-s"}
: ${daily_cciss_vol_status_extra_status_flags="-V"}

case "${daily_cciss_vol_status_devices}" in
	# XXX AUTO mode selects only regular ad/da disks
	[Aa][Uu][Tt][Oo])
		daily_cciss_vol_status_devices="$(ls /dev/ciss*)"
		;;
	*)	;;
esac


if [ -z "${daily_cciss_vol_status_devices}" ]; then
	: ${daily_cciss_vol_status_enable="NO"}
else
	: ${daily_cciss_vol_status_enable="YES"}
fi

tmpfile="$(mktemp -t daily)"
trap "rm -f ${tmpfile}" 0 1 3 15

rc=0
case "${daily_cciss_vol_status_enable}" in
	[Yy][Ee][Ss])
		echo
		echo 'CISS volumes status:'
		cd /dev
		for device in ${daily_cciss_vol_status_devices}; do
			if [ -e ${device} ]; then
				echo -n "Checking health of ${device}: "
				${cciss_vol_status} ${daily_cciss_vol_status_flags} \
					${device} > "${tmpfile}"
				status=$?
				if [ ${status} -eq 0 ]; then
					echo "OK"
				else
					rc=1
					${cciss_vol_status} \
						${daily_cciss_vol_status_extra_status_flags} \
						${device} 
				fi
			fi
		done
		;;
esac

exit "${rc}"


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list