NetBSD Problem Report #20272

Received: (qmail 10578 invoked by uid 605); 10 Feb 2003 00:23:55 -0000
Message-Id: <200302100023.h1A0NXn15623@tough.terabyte.com.ua>
Date: Mon, 10 Feb 2003 02:23:33 +0200 (EET)
From: mishka@terabyte.com.ua
Sender: gnats-bugs-owner@netbsd.org
Reply-To: mishka@terabyte.com.ua
To: gnats-bugs@gnats.netbsd.org
Subject: Daily quotas check
X-Send-Pr-Version: 3.95

>Number:         20272
>Category:       bin
>Synopsis:       No daily checks for disk quotas
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    bin-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 10 00:24:00 +0000 2003
>Closed-Date:    
>Last-Modified:  
>Originator:     Mishka
>Release:        NetBSD 1.6_STABLE
>Organization:
Terabyte ACS
>Environment:
NetBSD (stable and current branches)
Architecture: i386
Machine: i386
>Description:

Greetings!

After some needs in disk quotas I have enabled its and found that
no any check of quota usage, and even quota has been exceeded there
is no way for non-shell users to know when their quota stats. Of
course, they will know about limits overrides when their files
can't be written to server and other services (mail, databases,
and so on) will fails, but it is invalid, IMHO.

>How-To-Repeat:

Just enable disk quotas.

>Fix:

The script at the and of this PR used by me in every day checks
(called from daily.local) and works as follows (sample output):


---- BEGIN OF QC OUTPUT ----
Running /etc/daily.local:

Check user quotas:
                        Block limits               File limits
User            used    soft    hard  grace      used    soft    hard  grace
mishka    +-  246504  200000  400000 12days      2429       0       0       

Notify quota exceeders: mishka.

Check group quotas:
Group quotas disabled.
---- END OF QC OUTPUT ----


The script is controlled within two variables (customized in daily.conf):

    check_quotas		- do quota checks or not.
    notify_quota_exceeders	- notify quota exceeders if any or not.

Thus, it will check for quotas on all filesystems, and if quotas
disabled the appropriate message will be displayed (what's a sense
of check_quotas in YES, if all quotas disabled?). The quota exceeders
only are shown. If notify_quota_exceeders=YES, then all such users
will receive the message with quota(1) report. If user was deleted,
but him files are stored on disk and overlaps him quotas, the
notification must be made, but it is impossible (no such user); in
this case as well as in case of any other error, no notification
will be sent and asterisk will be shown near that user in "Notify
quota exceeders" report. I.e.:

    Notify quota exceeders: janedoe 1000* johndoe.


---- BEGIN OF DAILY.LOCAL SCRIPT ----
#!/bin/sh -
#
# $Id: daily.local,v 1.3 2003/02/09 23:23:44 mishka Exp $

if checkyesno check_quotas; then
	echo ""
	echo "Check user quotas:"
	U_QUOTA=$(repquota -u -a)
	U_XCDRS=$(echo "${U_QUOTA}" | grep "+")
	if [ -n "${U_XCDRS}" ] ; then
		echo "${U_QUOTA}" | head -2
		echo "${U_XCDRS}"
		if checkyesno notify_quota_exceeders; then
			echo ""
			echo -n "Notify quota exceeders:"
			EXCEEDERS=$(echo "${U_XCDRS}" \
				| awk '{print $1}' | sed 's:[-+][-+]$::')
			for VIOLATOR in ${EXCEEDERS}; do
				echo -n " ${VIOLATOR}"
				userinfo -e ${VIOLATOR} \
				&& quota -u ${VIOLATOR} \
					| mail -s \
					"WARNING: you quota has been exceeded" \
					${VIOLATOR} \
				|| echo -n "*"
			done
			echo "."
		fi
	elif [ -z "${U_QUOTA}" ] ; then
		echo "User quotas disabled."
	fi

	echo ""
	echo "Check group quotas:"
	G_QUOTA=$(repquota -g -a)
	G_XCDRS=$(echo "${G_QUOTA}" | grep "+")
	if [ -n "${G_XCDRS}" ] ; then
		echo "${G_QUOTA}" | head -2
		echo "${G_XCDRS}"
	elif [ -z "${G_QUOTA}" ] ; then
		echo "Group quotas disabled."
	fi
fi
---- END OF DAILY.LOCAL SCRIPT ----

--
Best regards,
Mishka.
>Release-Note:
>Audit-Trail:
>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.