2012-02-06 08:28:40 +00:00
|
|
|
#!/bin/bash
|
2013-01-25 16:39:39 +00:00
|
|
|
set -x
|
2012-02-06 08:28:40 +00:00
|
|
|
. /etc/alternc/local.sh
|
|
|
|
# Set disk quota to an user
|
|
|
|
# Won't work over NFS
|
2006-05-12 11:17:23 +00:00
|
|
|
|
2012-02-06 08:28:40 +00:00
|
|
|
MID=$1
|
|
|
|
SIZE=$2
|
2012-02-28 14:48:45 +00:00
|
|
|
AWK=/usr/bin/awk
|
2013-01-25 16:39:39 +00:00
|
|
|
MOUNT=/bin/mount
|
|
|
|
SED=/bin/sed
|
2012-02-28 14:48:45 +00:00
|
|
|
QUOTA=/usr/sbin/setquota
|
2013-01-25 16:39:39 +00:00
|
|
|
DF=/bin/df
|
2012-11-07 16:42:57 +00:00
|
|
|
|
|
|
|
#checking if quotas are installed
|
|
|
|
command -v $QUOTA >/dev/null && continue || { echo "Quotas uninstalled"; exit 1; }
|
|
|
|
|
2012-02-06 08:28:40 +00:00
|
|
|
if [ $# -ne 2 ] || [[ ! "$MID" =~ ^[0-9]+$ ]] || [[ ! "$SIZE" =~ ^[0-9]+$ ]]; then
|
|
|
|
echo "Usage: quota_edit <uid> <size>"
|
|
|
|
echo "Edit the quota of the AlternC account having uid <uid> the the available space to <size>"
|
2013-01-25 16:39:39 +00:00
|
|
|
exit 1
|
2012-02-06 08:28:40 +00:00
|
|
|
fi
|
2006-05-12 11:17:23 +00:00
|
|
|
|
2013-01-25 16:39:39 +00:00
|
|
|
DATA_PART=`$DF "${ALTERNC_LOC}/html" 2>/dev/null | $AWK 'NR==2 { print $1 }'`
|
|
|
|
|
|
|
|
# quota will give over NFS will print the partition using the full NFS name
|
|
|
|
# (e.g. 10.0.0.1:/var/alternc) so we need to lookup first with mount
|
|
|
|
# to convert DATA_PART if needed.
|
|
|
|
|
|
|
|
QUOTA_PART=`$MOUNT | $SED -n -e "s,\([^ ]*\) on ${ALTERNC_LOC}/html type nfs.*,\1,p"`
|
|
|
|
echo $QUOTA_PART
|
|
|
|
|
|
|
|
if [ -z "$QUOTA_PART" ]; then
|
|
|
|
`sudo $QUOTA -r -g $MID $SIZE $SIZE 0 0 $DATA_PART 2>/dev/null || echo "Group quota are not enabled on /var/alternc." >&2`
|
|
|
|
else
|
|
|
|
`sudo $QUOTA -r -g $MID $SIZE $SIZE 0 0 "$ALTERNC_LOC/html" 2>/dev/null || echo "Group quota are not enabled on /var/alternc." >&2`
|
|
|
|
fi
|
|
|
|
|
|
|
|
|