This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
openbsd:shell:quotas [2020/02/26 23:38] pirata [Defining thresholds] |
openbsd:shell:quotas [2020/07/23 19:01] jrmu |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Disk quotas ====== | ====== Disk quotas ====== | ||
- | Disk quotas are used to place limits on the amount of disk space available to certain users and groups. There are two types of quotas - soft and hard quotas. | + | Disk quotas are used to place limits on the amount of disk space available to certain users and groups. |
+ | There are two types of quotas - soft and hard quotas. | ||
- | A soft quota, once threshold is reached, warns the user and sets a grace period time so user can decrease his/her disk usage below limits. After grace period is over, the soft limit is handled as a hard limit - does not allow any more disk allocation. | + | - **soft quotas** - allows further disk allocation but, once threshold is reached, warns users and sets a grace period time so they can decrease their disk usage below limits. After the grace period is over, the soft limit is handled as a hard limit |
+ | - **hard quotas** - does not allow any more disk allocation once threshold is reached. | ||
- | Currently, IRCNow's shell limits disk usage to 5GB (soft) and 10GB (hard) per user. | + | Currently, IRCNow's shell limits disk usage to **1GB** (soft) and **1.5GB** (hard) and users have 1 week to decrease disk usage. |
====== Setting up ====== | ====== Setting up ====== | ||
- | To enable quotas, We need to use the keywords **userquota** and/or **groupquota** to mark the desired filesystem in fstab(5) on which We want to enforce quotas. By default, files **quota.user** and **quota.group** will be created at the root of those filesystems. | + | To enable quotas, We need to mark all the desired filesystems by adding the keywords **userquota** and/or **groupquota** in fstab(5) for each filesystem We want to be able to enforce quotas. |
- | + | ||
- | Example: | + | |
<code bash> | <code bash> | ||
Line 15: | Line 15: | ||
</code> | </code> | ||
- | ====== Defining thresholds ====== | + | ====== Defining limits ====== |
- | Thresholds are measured in KB and | + | To set thresholds, We use edquota(8). Keep in mind that values are measured in KB (1000KB equals to 1MB). |
- | To set thresholds, We use edquota(8). | + | edquota(8) invokes vi(1) unless you specify other editor. |
- | + | ||
- | For an individual user: | + | |
<code bash> | <code bash> | ||
- | $ edquota PiRATA | + | $ edquota [-u] PiRATA |
Quotas for user PiRATA: | Quotas for user PiRATA: | ||
/home: KBytes in use: 62, limits (soft = 256000, hard = 512000) | /home: KBytes in use: 62, limits (soft = 256000, hard = 512000) | ||
inodes in use: 25, limits (soft = 0, hard = 0) | inodes in use: 25, limits (soft = 0, hard = 0) | ||
+ | |||
+ | $ edquota -g staff | ||
+ | Quotas for group staff: | ||
+ | /home: KBytes in use: 62, limits (soft = 1000000, hard = 1500000) | ||
+ | inodes in use: 25, limits (soft = 0, hard = 0) | ||
</code> | </code> | ||
- | On the example above, PiRATA can use up to 512MB. | + | On the first above, PiRATA can use up to 512MB on his $HOME. On the latter, all staff users are limited to 15GB of disk space. |
- | For a group, We need to invoke -g option: | + | Now, what if you need to define a certain threshold for 7 or 8 users or even 50? What would you do? Probably you would use edquota(8) for each user. |
+ | |||
+ | Gladly, We don't need to - by invoking the **-p** option we can have the thresholds replicated: | ||
<code bash> | <code bash> | ||
- | $ edquota -g staff | + | $ edquota -p PiRATA jrmu jimmy_will dennis |
- | Quotas for group staff: | + | |
- | /home: KBytes in use: 62, limits (soft = 1000000, hard = 1500000) | + | |
- | inodes in use: 25, limits (soft = 0, hard = 0) | + | |
</code> | </code> | ||
- | In this case, all staff users will be able to use up to 15GB of disk space. | + | By invoking the **-t** option, grate time can be defined: |
- | ====== Enforcing ====== | + | |
+ | <code bash> | ||
+ | $ edquota -t search_social | ||
+ | Time units may be: days, hours, minutes, or seconds | ||
+ | Grace period before enforcing soft limits for users: | ||
+ | /home: block grace period: 7 days, file grace period: 7 days | ||
+ | </code> | ||
+ | ====== Enabling/Disabling quotas ====== | ||
+ | To turn on or off disk quotas, use quotaon(8) and/or quotaoff(8). | ||
+ | <code bash> | ||
+ | // Enables disk quotas on all filyesystems that have the user/diskquota flag defined on fstab(5) | ||
+ | $ quotaon -a | ||
+ | // Disables disk quotas for user net_wayfarer | ||
+ | $ quotaoff -u net_wayfarer | ||
+ | </code> | ||
+ | |||
+ | ====== Displaying quota statistics ====== | ||
+ | quota(1) outputs current disk usage and limits. By default, only the user quotas are printed but you can see group quotas by invoking **-g** option. | ||
+ | |||
+ | <code bash>$ quota jrmu | ||
+ | Disk quotas for user jrmu (uid 1012): | ||
+ | Filesystem KBytes quota limit grace files quota limit grace | ||
+ | /home 3704 5000000 10000000 58 0 0 | ||
+ | </code> |