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
Quotaon announces to the system that disk quotas should be enabled on one or more filesystems.
Disk quotas for user probal (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/hda8 7 70 110 7 0 0
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
103+0 records in
102+0 records out
60+0 records out
61440 bytes (61 kB) copied, 0.000604518 seconds, 102 MB/s
Disk quotas for user saiful (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda8 7 50 80 7 0 0
~
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
72+0 records out
73728 bytes (74 kB) copied, 0.0014104 seconds, 52.3 MB/s
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 /usertestQuotaon 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/hda8Block 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 exceeded103+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 in60+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/hda8Block 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 in72+0 records out
73728 bytes (74 kB) copied, 0.0014104 seconds, 52.3 MB/s