104.4 Manage disk quotas
Candidates should be able to manage disk quotas for users.
- Set up a disk quota for a filesystem.
- Edit, check and generate user quota reports.
Quotas will let the system admin to control how much a user or a group consumes disk. The version 2 quota discussed in LPIC, needs kernel 2.4 and above. The package is called
The option should be added to required
/etc/fstab file. The most famous ones are:
|uqouta||same as usrquota|
|quota||same as usrquota|
|gquota||same as grpquota|
So for example is we want to enable quotas on sda2 we have to change the line in /etc/fstab like this:
/dev/sda2 /home ext4 defaults,usrquota,grpquota 1 2
Next we need to specify the quotas of each user and each group. Two files called
aquota.group in the root file system will do this.
Now it is enough to run the
quotacheckcommand will create the aquota.user and aquota.group if they do not exist
# quotacheck -u -a -m -c -v quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown. quotacheck: Scanning /dev/sda1 [/boot] done quotacheck: Old group file name could not been determined. Usage will not be subtracted. quotacheck: Checked 13 directories and 389 files # ls /boot/ aquota.user
Creates quota files for users on all file systems and will work on mounted file systems; being verbose.
Then you need to turn the quota checking on:
# quotaon -auv ##all in /etc/fstab, for user quotas and be verbose /dev/sda1 [/boot]: user quotas turned on
The main command for editing quota is *edquota. It will check the users quota from all file systems and presents them in a file editor to you.
#edquota -u jadi Disk quotas for user jadi (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/sda1 0 0 0 0 0 0
As you can see, the system shows the current blocks of 1k data, number of inodes (number of files and directories) and soft and hard limits for each of them. If a user goes over its soft-limits, there will be emails. Hard limits are real limits and user can not go over them. If you need to save soft or hard limits, just change the file and save it.
You have to run
quotacheckto update these data
For copying one users limits to another user, use the
# edquota -p jadi newuser neweruser lastuser
If you need to check the quota of only one user user the
# quota jadi Disk quotas for user jadi (uid 1000): Filesystem blocks quota limit grace files quota limit grace /dev/sda1 5 5000 0 2 0 0
This is not easy if you have many users so you can use
repquota as follow:
# repquota -u -a *** Report for user quotas on device /dev/sda1 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 120288 0 0 401 0 0 jadi -- 5 5000 0 2 0 0
There is a command for checking quotas and warning users called
warnquota. If is good to run it time to time using a crontab (will see this crontabs later).