#!/bin/sh

# v.0.0.2
# spd@daphne.cps.unizar.es
#

# EDIT: address of human tech support:
ROOT=spd@daphne.cps.unizar.es

###########################################################################

on_exit()
{
	rm -f /var/lock/mquota.lck
}


if [ -f /var/lock/mquota.lck ]
then
	echo "Sorry, previous mquota.sh didn't finish" >&2
	exit 1
else
	touch /var/lock/mquota.lck
	trap "on_exit" INT 0 1 2 3 13 15
fi

getent passwd |\
(
IFS=":"
while read uname pass uid gid gcos home shell
do
	if [ $gid -ge 999 -a $gid -lt 20000 -a $gid -ne 1600 ]
	then
		if quota $uname | fgrep "Over disk quota" > /dev/null 2>&1
		then
			(
			cat <<- EOF

###########################################################################

Este es un aviso generado automaticamente para $gcos.

Ha superado el espacio asignado en el servidor `hostname`. Por favor,
verifique que todo lo que tiene en el disco es necesario. Si no baja
su utilizacion de disco por debajo de la quota antes de que finalice
el periodo de gracia no podra escribir nada mas en el servidor, lo
que puede conducir a una perdida de ficheros.

Si lo considera imprescindible, puede solicitar un aumento de
quota a ${ROOT}, justificando convenientemente la peticion.


###########################################################################
EOF

quota $uname | fgrep /export
echo "####"
echo "####"
quota -v $uname | sed -e '/^\/home/,$d'
echo "####"
echo "####"

				) | /usr/ucb/Mail -in -s "Quota sobrepasada en `hostname`" \
				-r ${ROOT} $uname
		fi
	fi
done
)
	
rm -f /var/lock/mquota.lck

