#!/bin/bash . /etc/alternc/local.sh # Set disk quota to an user # Won't work over NFS MID=$1 SIZE=$2 AWK=/usr/bin/awk MOUNT=/bin/mount SED=/bin/sed QUOTA=/usr/sbin/setquota DF=/bin/df #checking if quotas are installed command -v $QUOTA >/dev/null || { echo "Quotas uninstalled"; exit 1; } if [ $# -ne 2 ] || [[ ! "$MID" =~ ^[0-9]+$ ]] || [[ ! "$SIZE" =~ ^[0-9]+$ ]]; then echo "Usage: quota_edit " echo "Edit the quota of the AlternC account having uid the the available space to " exit 1 fi DATA_PART=`$DF "${ALTERNC_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_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