Skip to main content

Disk Quotas (W.I.P.)

Enabling Disk Quotas

==Update /etc/fstab==
<pre>Update the fstab - adding ,usrquota,grpquota
/dev/VolGroup00/LogVol01 /                       ext3    noatime,usrquota,grpquota         1 1
/dev/mapper/ORAAPPVG-LV_U01 /u01 ext4 defaults,usrquota,grpquota 1 2
/dev/mapper/ORAAPPVG-LV_U02 /u02 ext4 defaults,usrquota,grpquota 1 2
/dev/mapper/ORAAPPVG-LV_U03 /u03 ext4 defaults,usrquota,grpquota 1 2
</pre>

==Create aquota file for each FS==
<pre>for FS in `grep usrquota /etc/fstab | awk '{ print $2 }'`; do touch ${FS}/aquota.user && chmod 0600 ${FS}/aquota.user; done
for FS in `grep grpquota /etc/fstab | awk '{ print $2 }'`; do touch ${FS}/aquota.group && chmod 0600 ${FS}/aquota.group; done
</pre>

==Remount Filesystem or reboot==
<pre>It is likely best to reboot at this point.
  Otherwise, run # mount -oremount /
</pre>==Turn on quotas / create template user==
  for FS in `grep grpquota /etc/fstab | awk '{ print $2 }'`; do quotacheck ${FS}; done
  quotaon -av <br />
  edquota -u bob
  Disk quotas for user bob (uid 1384):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/mapper/ORAAPPVG-LV_U01          0    2048000    2560000          0        0        0
  /dev/mapper/ORAAPPVG-LV_U02          0    2048000   25600000          0        0        0

This does not work as we use netgroups (follow the next example instead)

  edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`

I create a file with all the users, then run...
  for USER in `cat u0X-quotas.users `; do edquota -p bob $USER; done

== Review quotas ==

  repquota -a (or repquota -av -- tons of data with v)
You can review quotas on a per user basis

<pre>
[root@dvgllpsmsapp11 ~]# quota
Disk quotas for user root (uid 0): none
[root@dvgllpsmsapp11 ~]# quota oracle
Disk quotas for user oracle (uid 1038): none
[root@dvgllpsmsapp11 ~]# quota bob
Disk quotas for user bob (uid 1384):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/root 2304996* 768000 1024000   6days      48       0       0       
/dev/mapper/ORAAPPVG-LV_U01
                  20628  2048000 2560000             107       0       0       
/dev/mapper/ORAAPPVG-LV_U02
                 330444  2560000 3072000           12952       0       0       
/dev/mapper/ORAAPPVG-LV_U03
                  34800  4608000 5120000              24       0       0       
</pre>

==Update Quotas==
I ran into an issue where I grew a quota'd filesystem

The following is a rather abrasive method to just clear it all up...
  quotaoff /u02
  rm -f /u02/aquota.*
  quotacheck -vgum /u02 && quotaon /u02<br /><br />
Disable an individual quota
  setquota -u oracle 0 0 0 0 -a


A bit of code to create quotas based on a particular user
edquota pchernik
  #!/bin/bash
# WORKAROUND TO UPDATE/ADD QUOTAS TO HOSTS USING NETGROUPS

# TODO: Need to create an exclude_list [DONE]
EXCLUDEUSERS=(oracle srm)
QUOTAPROTOUSER=myuser1

echo "# Number of Excluded Users: ${#EXCLUDEUSERS[*]} "

NETGROUPS=`grep ^+ /etc/passwd | sed 's/+@//g' | grep -v sysadmin`
for NETGROUP in $NETGROUPS
do
  echo "# NOTE: processing $NETGROUP"
  USERS=`getent netgroup $NETGROUP | sed 's/${NETGROUP}//g' | sed 's/)/\n/g' | awk 'BEGIN {FS=","}{print $2}' | grep -v ^$ | sed 's/\ //g'`
  for USER in $USERS
  do
    SKIP=0
    for i in "${EXCLUDEUSERS[@]}"
    do
      if [ "$i" == "${USER}" ]
      then
        SKIP=1
      fi
    done
    case $SKIP in
      0)
        echo "edquota -p ${QUOTAPROTOUSER} ${USER}"
        edquota -p ${QUOTAPROTOUSER} ${USER}
      ;;
      *)
        echo "# WARNING: Ignoring ${USER}"
      ;;
    esac
    SKIP=0
  done
  echo
done

Comments

Popular posts from this blog

RHN Satellite Server (spacewalk) repomd.xml not found

"repomd.xml not found" If you add a channel, or if your RHN cache gets corrupted, and one of your guests complains that it cannot find repomd.xml for jb-ews-2-x86_64-server-5-rpm (for example) - you need to rebuild your repodata cache. Normally this is an automated job - which is exemplified by the fact that you have obviously built out your entire Satellite environment and never had to do any of the steps you are about to do. So - some prep work: Open 3 terminals to your Satellite Server and run: # Term 1 cd /var/cache/rhn watch "ls -l | wc -l" # Term 2 pwd cd /var/log/rhn tail -f rhn_taskomatic_daemon.log # Term 3 satellite-sync --channel=jb-ews-2-x86_64-server-5-rpm Once the satellite-sync has completed, you >should< see the count increment by one.  If you are unlucky (like me) you will not. You then need to login to the Satellite WebUI as the satellite admin user. Click on the Admin tab (at the top) Task Schedules (on the left) fin

Install RHEL 7 on old HP DL380 g5

Someone at work had been running RHEL on an HP DL380 G5 and blew it up.  After several attempts at doing an installation that made me conclude the hardware was actually bad... I kept digging for the answer. Attempt install and Anaconda could not find any disks - try a Drivers Disk (dd.img) both cciss and hpsa.   -- once we did that, when the system would reboot it would say it could not find a disk. hmmm. Boot from your installation media and interrupt the startup at grub. Add hpsa.hpsa_allow_any=1 hpsa.hpsa_simple_mode=1 to the line starting with linuxefi press CTRL-X to boot. Once the system restarts after the install, you need to once again interrupt the startup and add the line from above. After the system starts, edit /etc/default/grub and add those 2 parameters to the end of the line starting with GRUB_CMDLINE_LINUX (which likely has quiet at the end of the line currently). then run # cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.orig # grub2-mkconfig -o /boot/grub2

MOTD with colors! (also applies to shell profiles)

I'm not sure why I had never looked into this before, but this evening I became obsessed with discovering how to present different colored text in the /etc/motd. A person had suggested creating a shell script (rather than using special editing modes in vi, or something) and I agree that is the simplest way of getting this accomplished quickly. This most noteworthy portion of this script is the following: RESET="\033[0m" that puts the users shell back to the original color. I typically like a green text on black background. Also - a great reference for the different colors and font-type (underscore, etc...) https://wiki.archlinux.org/index.php/Color_Bash_Prompt I found this example on the web and I wish I could recall where so that I could provide credit to that person. #!/bin/bash #define the filename to use as output motd="/etc/motd" # Collect useful information about your system # $USER is automatically defined HOSTNAME=`uname -n` KERNEL=`un