Managing Disk Usage with Quotas.

Disk Quotas: This feature of Linux allows the system administrator to allocate a maximum amount of disk space a user or group may use.You may eventually need to restrict the amount of disk space used on each partition by each user or group of users as your disk drives become filled with data. The disk quota feature of RedHat/Fedora Linux enables you to do this

Edit your /etc/fstab file - You'll need to add the quota option to the /etc/fstab file to let it know that you are enabling user quotas in your file system.
[root@localhost usertest]# mkdir /usertest 
[root@localhost usertest]# vim /etc/fstab

/dev/hda8               /usertest               ext3    defaults,quota  0 0

Remount your file system - Once you finish editing your /etc/fstab file, you have to remount your filesystem as follows :
[root@localhost usertest]# mount -o remount,quota /usertest

Use mount command for show currently mounted disk and directory :
[root@localhost usertest]# mount
/dev/hda6 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/hda8 on /usertest type ext3 (rw,quota,quota)

For using quota check command we open the the database,quotacheck - scan a filesystem for disk usage, create, check and repair quota files   
[root@localhost usertest]# quotacheck -cM /usertest

Quotaon announces to the system that disk quotas should be enabled on one or more filesystems.
[root@localhost usertest]# quotaon /usertest

The edquota command creates and edits quotas. It creates a temporary file that contains each user's and group's current disk quotas.
[root@localhost usertest]# edquota probal

Disk quotas for user probal (uid 500):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda8                         7          70        110          7          0        0

The repquota command prints a summary of quotas and disk usage for a file system specified by the FileSystem parameter.
[root@localhost usertest]# repquota -v /usertest/
*** Report for user quotas on device /dev/hda8
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used            soft     hard        grace    used   soft   hard  grace
----------------------------------------------------------------------
root      --   10544            0         0                         4        0      0
probal    --     7               70       110                      7         0      0
saiful    --       7                0         0                         7         0      0

Statistics:
Total blocks: 7
Data blocks: 1
Entries: 3
Used average: 3.000000

For check quota for specific user probal we now  login as  probal
[root@localhost usertest]# su - probal

[probal@localhost ~]$ dd if=/dev/zero of=file bs=1024 count=110
hda8: warning, user block quota exceeded.
hda8: write failed, user block limit reached.
dd: writing `file': Disk quota exceeded
103+0 records in
102+0 records out
73728 bytes (74 kB) copied, 0.0188671 seconds, 3.9 MB/s
[probal@localhost ~]$ dd if=/dev/zero of=file bs=1024 count=50
50+0 records in
50+0 records out
51200 bytes (51 kB) copied, 0.000514527 seconds, 99.5 MB/s

[probal@localhost ~]$ dd if=/dev/zero of=file bs=1024 count=60
60+0 records in
60+0 records out
61440 bytes (61 kB) copied, 0.000604518 seconds, 102 MB/s

[probal@localhost ~]$ dd if=/dev/zero of=file bs=1024 count=65
hda8: warning, user block quota exceeded.
65+0 records in
65+0 records out
66560 bytes (67 kB) copied, 0.000754492 seconds, 88.2 MB/s

[root@localhost ~]# edquota saiful

Disk quotas for user saiful (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda8                         7         50          80          7           0        0
~
[root@localhost ~]# repquota -v /usertest/
*** Report for user quotas on device /dev/hda8
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User                        used        soft    hard     grace      used  soft  hard  grace
----------------------------------------------------------------------
root      --              10544        0         0                       4     0     0
probal    +-              73          70       110    6days        8     0     0
saiful    --                 7            50        80                      7     0     0
debashish --            7              0         0                       7     0      0

Statistics:
Total blocks: 7
Data blocks: 1
Entries: 4
Used average: 4.000000

[saiful@localhost ~]$ dd if=/dev/zero of=file bs=1024 count=40
40+0 records in
40+0 records out
40960 bytes (41 kB) copied, 0.000418989 seconds, 97.8 MB/s

[saiful@localhost ~]$ dd if=/dev/zero of=file bs=1024 count=60
hda8: warning, user block quota exceeded.
60+0 records in
60+0 records out
61440 bytes (61 kB) copied, 0.00072801 seconds, 84.4 MB/s

[saiful@localhost ~]$ dd if=/dev/zero of=file bs=1024 count=80
hda8: warning, user block quota exceeded.
hda8: write failed, user block limit reached.
dd: writing `file': Disk quota exceeded
73+0 records in
72+0 records out
73728 bytes (74 kB) copied, 0.0014104 seconds, 52.3 MB/s