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
==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
Post a Comment