Commit 38310b4e authored by Mac Newbold's avatar Mac Newbold

Add new script to notify users when they are over their quota. Runs from

cron daily, on the fs node (ops) as root. Uses lots of configure variables
so that it does the right thing in any installation, without any
customization.

One possible caveat regarding quotas: If FS_NODE != USERNODE, they don't
have a login on the fs machine. So checking their quota won't work unless
the rpc.rquotad(8) daemon is running on FS_NODE, which we currently don't
do.

In order to do this right, I had to add a new configure var,
FS_WITH_QUOTAS, that has a space separated list of file systems that have
quotas enabled. (Ie the default is 'FS_WITH_QUOTAS="/q /users"'.) It
doesn't have any default, since I couldn't come up with a reasonable one.
All the defs files have been updated appropriately to define this new
variable.
parent fe3fde01
#!/bin/sh
# Found on the internet, and customized for Emulab
#
# This script must run as root on ops, and should be run from cron daily,
# with an entry in /etc/crontab (on ops) something like this:
#
# 0 6 * * * root /usr/testbed/sbin/quotamail
#
# Some sites may wish to change the CC to a different list, or
# possibly even remove it all together.
#
# One possible caveat regarding quotas: If FS_NODE != USERNODE, they don't
# have a login on the fs machine. So checking their quota won't work unless
# the rpc.rquotad(8) daemon is running on FS_NODE, which we currently don't
# do.
#
for i in `/usr/sbin/repquota -v @FS_WITH_QUOTAS@ | awk '$2 ~ /+/ {print $1}'`
do
(
# feel free to change this message!!!
cat << MESSAGE
From: Testbed Operations <@TBOPSEMAIL_NOSLASH@>
To: $i@@OURDOMAIN@
Cc: Testbed Operations <@TBOPSEMAIL_NOSLASH@>
Subject: over disk quota at @THISHOMEBASE@
Hello,
It looks like your disk usage has exceeded your disk quota. Please move or
remove some files to get below your quota. Disk space is limited, so if
you could clean up your directory it would be appreciated.
You can check your usage with the 'quota' command on @USERNODE@:
> quota -v -l
`quota -v -l $i`
The directory trees where you most likely have files are:
Project directory: @FSDIR_PROJ@
Group directory: @FSDIR_GROUPS@
User/Home directory: @FSDIR_USERS@
Thanks,
@THISHOMEBASE@ Testbed Operations
@TBOPSEMAIL_NOSLASH@
MESSAGE
) | /usr/sbin/sendmail -t
done
...@@ -861,6 +861,7 @@ fi ...@@ -861,6 +861,7 @@ fi
# #
...@@ -1270,7 +1271,7 @@ fi ...@@ -1270,7 +1271,7 @@ fi
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh. # ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
echo "configure:1274: checking for a BSD compatible install" >&5 echo "configure:1275: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
...@@ -1353,6 +1354,7 @@ outfiles="$outfiles Makeconf GNUmakefile \ ...@@ -1353,6 +1354,7 @@ outfiles="$outfiles Makeconf GNUmakefile \
account/GNUmakefile account/tbacct account/webtbacct \ account/GNUmakefile account/tbacct account/webtbacct \
account/addpubkey account/webaddpubkey \ account/addpubkey account/webaddpubkey \
account/addsfskey account/webaddsfskey \ account/addsfskey account/webaddsfskey \
account/quotamail \
tbsetup/GNUmakefile tbsetup/console_setup tbsetup/spewlogfile \ tbsetup/GNUmakefile tbsetup/console_setup tbsetup/spewlogfile \
tbsetup/console_reset tbsetup/bwconfig tbsetup/power_rpc27.pm \ tbsetup/console_reset tbsetup/bwconfig tbsetup/power_rpc27.pm \
tbsetup/os_load tbsetup/os_setup tbsetup/os_select tbsetup/power \ tbsetup/os_load tbsetup/os_setup tbsetup/os_select tbsetup/power \
...@@ -1571,6 +1573,7 @@ s%@OURDOMAIN@%$OURDOMAIN%g ...@@ -1571,6 +1573,7 @@ s%@OURDOMAIN@%$OURDOMAIN%g
s%@FSDIR_PROJ@%$FSDIR_PROJ%g s%@FSDIR_PROJ@%$FSDIR_PROJ%g
s%@FSDIR_GROUPS@%$FSDIR_GROUPS%g s%@FSDIR_GROUPS@%$FSDIR_GROUPS%g
s%@FSDIR_USERS@%$FSDIR_USERS%g s%@FSDIR_USERS@%$FSDIR_USERS%g
s%@FS_WITH_QUOTAS@%$FS_WITH_QUOTAS%g
s%@TRACK_INTERSWITCH_BANDWIDTH@%$TRACK_INTERSWITCH_BANDWIDTH%g s%@TRACK_INTERSWITCH_BANDWIDTH@%$TRACK_INTERSWITCH_BANDWIDTH%g
s%@TIMESTAMPS@%$TIMESTAMPS%g s%@TIMESTAMPS@%$TIMESTAMPS%g
s%@UNIFIED_BOSS_AND_OPS@%$UNIFIED_BOSS_AND_OPS%g s%@UNIFIED_BOSS_AND_OPS@%$UNIFIED_BOSS_AND_OPS%g
......
...@@ -31,6 +31,7 @@ AC_SUBST(OURDOMAIN) ...@@ -31,6 +31,7 @@ AC_SUBST(OURDOMAIN)
AC_SUBST(FSDIR_PROJ) AC_SUBST(FSDIR_PROJ)
AC_SUBST(FSDIR_GROUPS) AC_SUBST(FSDIR_GROUPS)
AC_SUBST(FSDIR_USERS) AC_SUBST(FSDIR_USERS)
AC_SUBST(FS_WITH_QUOTAS)
AC_SUBST(TRACK_INTERSWITCH_BANDWIDTH) AC_SUBST(TRACK_INTERSWITCH_BANDWIDTH)
AC_SUBST(TIMESTAMPS) AC_SUBST(TIMESTAMPS)
AC_SUBST(UNIFIED_BOSS_AND_OPS) AC_SUBST(UNIFIED_BOSS_AND_OPS)
...@@ -396,6 +397,7 @@ outfiles="$outfiles Makeconf GNUmakefile \ ...@@ -396,6 +397,7 @@ outfiles="$outfiles Makeconf GNUmakefile \
account/GNUmakefile account/tbacct account/webtbacct \ account/GNUmakefile account/tbacct account/webtbacct \
account/addpubkey account/webaddpubkey \ account/addpubkey account/webaddpubkey \
account/addsfskey account/webaddsfskey \ account/addsfskey account/webaddsfskey \
account/quotamail \
tbsetup/GNUmakefile tbsetup/console_setup tbsetup/spewlogfile \ tbsetup/GNUmakefile tbsetup/console_setup tbsetup/spewlogfile \
tbsetup/console_reset tbsetup/bwconfig tbsetup/power_rpc27.pm \ tbsetup/console_reset tbsetup/bwconfig tbsetup/power_rpc27.pm \
tbsetup/os_load tbsetup/os_setup tbsetup/os_select tbsetup/power \ tbsetup/os_load tbsetup/os_setup tbsetup/os_select tbsetup/power \
......
...@@ -20,3 +20,4 @@ TBSTATEDEMAIL=barb@cs.utah.edu ...@@ -20,3 +20,4 @@ TBSTATEDEMAIL=barb@cs.utah.edu
TBTESTSUITEEMAIL=barb@cs.utah.edu TBTESTSUITEEMAIL=barb@cs.utah.edu
WWWHOST=www.emulab.net WWWHOST=www.emulab.net
WWW=www.emulab.net/~barb/www WWW=www.emulab.net/~barb/www
FS_WITH_QUOTAS="/q /users"
...@@ -25,3 +25,4 @@ WWWHOST=www.mini.emulab.net ...@@ -25,3 +25,4 @@ WWWHOST=www.mini.emulab.net
WWW=www.mini.emulab.net/~barb/www WWW=www.mini.emulab.net/~barb/www
TBCOOKIESUFFIX=-mini TBCOOKIESUFFIX=-mini
THISHOMEBASE=Mini.Emulab.Net THISHOMEBASE=Mini.Emulab.Net
FS_WITH_QUOTAS="/z"
...@@ -23,3 +23,4 @@ TBSTATEDEMAIL=calfeld@flux.cs.utah.edu ...@@ -23,3 +23,4 @@ TBSTATEDEMAIL=calfeld@flux.cs.utah.edu
TBTESTSUITEEMAIL=calfeld@flux.cs.utah.edu TBTESTSUITEEMAIL=calfeld@flux.cs.utah.edu
WWWHOST=www.emulab.net WWWHOST=www.emulab.net
THISHOMEBASE=Emulab.Net THISHOMEBASE=Emulab.Net
FS_WITH_QUOTAS="/q /users"
...@@ -26,6 +26,7 @@ FSDIR_GROUPS=/q/groups ...@@ -26,6 +26,7 @@ FSDIR_GROUPS=/q/groups
FSDIR_PROJ=/q/proj FSDIR_PROJ=/q/proj
FSDIR_USERS=/users FSDIR_USERS=/users
FSDIR_SHARE=/share FSDIR_SHARE=/share
FS_WITH_QUOTAS="/q /users"
WWWHOST=www.emulab.net WWWHOST=www.emulab.net
TBMAINSITE=1 TBMAINSITE=1
THISHOMEBASE=Emulab.Net THISHOMEBASE=Emulab.Net
...@@ -78,6 +78,7 @@ FSDIR_GROUPS=/q/groups ...@@ -78,6 +78,7 @@ FSDIR_GROUPS=/q/groups
FSDIR_PROJ=/q/proj FSDIR_PROJ=/q/proj
FSDIR_USERS=/users FSDIR_USERS=/users
FSDIR_SHARE=/share FSDIR_SHARE=/share
FS_WITH_QUOTAS="/q /users"
# #
# You shouldn't have to change anything below this point # You shouldn't have to change anything below this point
......
...@@ -19,3 +19,4 @@ TBSTATEDEMAIL=kwebb@cs.utah.edu ...@@ -19,3 +19,4 @@ TBSTATEDEMAIL=kwebb@cs.utah.edu
TBTESTSUITEEMAIL=kwebb@cs.utah.edu TBTESTSUITEEMAIL=kwebb@cs.utah.edu
WWWHOST=www.emulab.net WWWHOST=www.emulab.net
WWW=www.emulab.net/~kwebb/www WWW=www.emulab.net/~kwebb/www
FS_WITH_QUOTAS="/q /users"
...@@ -22,6 +22,7 @@ OURDOMAIN=mini.emulab.net ...@@ -22,6 +22,7 @@ OURDOMAIN=mini.emulab.net
FSDIR_GROUPS=/z/groups FSDIR_GROUPS=/z/groups
FSDIR_PROJ=/z/proj FSDIR_PROJ=/z/proj
FSDIR_USERS=/z/users FSDIR_USERS=/z/users
FS_WITH_QUOTAS="/z"
TBSTATEDEMAIL=minitestbed-stated@flux.cs.utah.edu TBSTATEDEMAIL=minitestbed-stated@flux.cs.utah.edu
TBTESTSUITEEMAIL=minitestbed-testsuite@flux.cs.utah.edu TBTESTSUITEEMAIL=minitestbed-testsuite@flux.cs.utah.edu
SFSSUPPORT=0 SFSSUPPORT=0
......
...@@ -22,3 +22,4 @@ WWWHOST=www.emulab.net ...@@ -22,3 +22,4 @@ WWWHOST=www.emulab.net
WWW=www.emulab.net/~newbold/www WWW=www.emulab.net/~newbold/www
THISHOMEBASE=Mac.Emulab.Net THISHOMEBASE=Mac.Emulab.Net
TBAUTHTIMEOUT=216000 TBAUTHTIMEOUT=216000
FS_WITH_QUOTAS="/q /users"
...@@ -17,3 +17,4 @@ TBTESTSUITEEMAIL=newbold@flux.utah.edu ...@@ -17,3 +17,4 @@ TBTESTSUITEEMAIL=newbold@flux.utah.edu
WWWHOST=www.emulab.net WWWHOST=www.emulab.net
WWW=www.emulab.net/~newbold/www WWW=www.emulab.net/~newbold/www
THISHOMEBASE=Mac.Emulab.Net THISHOMEBASE=Mac.Emulab.Net
FS_WITH_QUOTAS="/q /users"
...@@ -23,3 +23,4 @@ WWW=www.mini.emulab.net/~newbold/www ...@@ -23,3 +23,4 @@ WWW=www.mini.emulab.net/~newbold/www
TBCOOKIESUFFIX=-mini TBCOOKIESUFFIX=-mini
THISHOMEBASE=Mini.Emulab.Net THISHOMEBASE=Mini.Emulab.Net
TBAUTHTIMEOUT=216000 TBAUTHTIMEOUT=216000
FS_WITH_QUOTAS="/z"
...@@ -20,3 +20,4 @@ TBSTATEDEMAIL=rchriste@cs.utah.edu ...@@ -20,3 +20,4 @@ TBSTATEDEMAIL=rchriste@cs.utah.edu
TBTESTSUITEEMAIL=rchriste@cs.utah.edu TBTESTSUITEEMAIL=rchriste@cs.utah.edu
WWWHOST=www.emulab.net WWWHOST=www.emulab.net
WWW=www.emulab.net/~ricci/www WWW=www.emulab.net/~ricci/www
FS_WITH_QUOTAS="/q /users"
...@@ -24,3 +24,4 @@ FSDIR_USERS=/users ...@@ -24,3 +24,4 @@ FSDIR_USERS=/users
WWWHOST=www.emulab.net WWWHOST=www.emulab.net
WWW=www.emulab.net/~ricci/www WWW=www.emulab.net/~ricci/www
FS_WITH_QUOTAS="/q /users"
...@@ -28,3 +28,4 @@ WWWHOST=www.mini.emulab.net ...@@ -28,3 +28,4 @@ WWWHOST=www.mini.emulab.net
WWW=www.mini.emulab.net/~ricci/www WWW=www.mini.emulab.net/~ricci/www
TBCOOKIESUFFIX=-mini TBCOOKIESUFFIX=-mini
THISHOMEBASE=Mini.Emulab.Net THISHOMEBASE=Mini.Emulab.Net
FS_WITH_QUOTAS="/z"
...@@ -23,3 +23,4 @@ TBTESTSUITEEMAIL=shash+testsuite@cs.utah.edu ...@@ -23,3 +23,4 @@ TBTESTSUITEEMAIL=shash+testsuite@cs.utah.edu
WWWHOST=www.emulab.net WWWHOST=www.emulab.net
WWW=www.emulab.net/~shash/www WWW=www.emulab.net/~shash/www
THISHOMEBASE=Shash@Emulab.Net THISHOMEBASE=Shash@Emulab.Net
FS_WITH_QUOTAS="/q /users"
...@@ -28,3 +28,4 @@ WWWHOST=www.mini.emulab.net ...@@ -28,3 +28,4 @@ WWWHOST=www.mini.emulab.net
WWW=www.mini.emulab.net/~shash/www WWW=www.mini.emulab.net/~shash/www
TBCOOKIESUFFIX=-mini TBCOOKIESUFFIX=-mini
THISHOMEBASE=Mini-Shash@Emulab.Net THISHOMEBASE=Mini-Shash@Emulab.Net
FS_WITH_QUOTAS="/z"
...@@ -21,3 +21,4 @@ TBTESTSUITEEMAIL=stoller@fast.cs.utah.edu ...@@ -21,3 +21,4 @@ TBTESTSUITEEMAIL=stoller@fast.cs.utah.edu
WWWHOST=www.emulab.net WWWHOST=www.emulab.net
WWW=www.emulab.net/~stoller/www WWW=www.emulab.net/~stoller/www
THISHOMEBASE=Stoller.Emulab.Net THISHOMEBASE=Stoller.Emulab.Net
FS_WITH_QUOTAS="/q /users"
...@@ -16,6 +16,7 @@ OURDOMAIN=ballmoss.com ...@@ -16,6 +16,7 @@ OURDOMAIN=ballmoss.com
FSDIR_GROUPS=/groups FSDIR_GROUPS=/groups
FSDIR_PROJ=/proj FSDIR_PROJ=/proj
FSDIR_USERS=/users FSDIR_USERS=/users
FS_WITH_QUOTAS="/proj /groups /users"
TBSTATEDEMAIL=stoller@stoller.casco.net TBSTATEDEMAIL=stoller@stoller.casco.net
TBTESTSUITEEMAIL=stoller@stoller.casco.net TBTESTSUITEEMAIL=stoller@stoller.casco.net
WWWHOST=golden-gw.ballmoss.com:9876 WWWHOST=golden-gw.ballmoss.com:9876
......
...@@ -26,3 +26,4 @@ WWWHOST=www.mini.emulab.net ...@@ -26,3 +26,4 @@ WWWHOST=www.mini.emulab.net
WWW=www.mini.emulab.net/~stoller/www WWW=www.mini.emulab.net/~stoller/www
TBCOOKIESUFFIX=-mini TBCOOKIESUFFIX=-mini
THISHOMEBASE=Stoller.Mini.Emulab.Net THISHOMEBASE=Stoller.Mini.Emulab.Net
FS_WITH_QUOTAS="/z"
...@@ -78,6 +78,7 @@ FSDIR_GROUPS=/groups ...@@ -78,6 +78,7 @@ FSDIR_GROUPS=/groups
FSDIR_PROJ=/proj FSDIR_PROJ=/proj
FSDIR_USERS=/users FSDIR_USERS=/users
FSDIR_SHARE=/share FSDIR_SHARE=/share
FS_WITH_QUOTAS="/proj /groups /users"
# #
# You shouldn't have to change anything below this point # You shouldn't have to change anything below this point
......
...@@ -23,6 +23,7 @@ OURDOMAIN=wide.emulab.net ...@@ -23,6 +23,7 @@ OURDOMAIN=wide.emulab.net
FSDIR_GROUPS=/z/groups FSDIR_GROUPS=/z/groups
FSDIR_PROJ=/z/proj FSDIR_PROJ=/z/proj
FSDIR_USERS=/z/users FSDIR_USERS=/z/users
FS_WITH_QUOTAS="/q /users"
UNIFIED_BOSS_AND_OPS=1 UNIFIED_BOSS_AND_OPS=1
DISABLE_NSE=1 DISABLE_NSE=1
TBSTATEDEMAIL=widetestbed-stated@flux.cs.utah.edu TBSTATEDEMAIL=widetestbed-stated@flux.cs.utah.edu
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment