IRCNow

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
openbsd:shell:quotas [2020/02/26 23:24]
pirata draft
openbsd:shell:quotas [2020/07/23 19:01] (current)
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.
  
-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 **groupquota** ​to mark the desired filesystem ​in fstab(5) ​on which We want to enforce quotas. ​By default, the 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 ​====== 
 +To set thresholds, We use edquota(8). Keep in mind that values are measured in KB (1000KB equals to 1MB). 
 + 
 +edquota(8) invokes vi(1) unless you specify other editor.
  
 <code bash> <code bash>
-$ edquota PiRATA+$ edquota ​[-u] PiRATA
 Quotas for user PiRATA: Quotas for user PiRATA:
-/home: KBytes in use: 62, limits (soft = 1000000, hard = 1500000)+/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>​
  
-edquota -g staff+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.
  
-====== Enforcing ​ ======+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>
 +$ edquota -p PiRATA jrmu jimmy_will dennis
 +</​code>​
  
 +By invoking the **-t** option, grate time can be defined:
  
 +<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>​