40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/bash
 | |
| set -x
 | |
| . /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 && continue || { echo "Quotas uninstalled"; exit 1; }
 | |
| 
 | |
| 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>"
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| 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
 | |
| 
 | |
| 
 |