介绍
本指南假设与Droplet用户帐户已经创建。 在大多数情况下,用户配额被应用到FTP或SFTP用户,但有可能这适用于所有系统用户。 注意,不可能使用VSFTP的虚拟用户功能配额 - 用户应该存在于系统上!
配额用于限制用户或组可以在VPS上使用的磁盘空间量。 通常有两种不同的管理配额的方法:第一,可以为特定用户创建和装载空文件系统。 这种方法的一个优点是, 不需要额外的封装需要 。 第二,配额工具可用于动态管理用户或组的磁盘配额。 一个很大的优点是可以在没有任何复杂的磁盘调整大小的情况下实时更改配额。
本指南主要关注用户特定配额的创建; 但是,所有命令对于组配额是完全相同的。 而不是用户名,可以在描述的命令中使用组名称。
安装配额
本指南首先使用以下命令安装配额程序:
apt-get install quota
在使用用户特定配额之前,需要编辑文件系统的安装选项。 挂载文件fstab
需要打开使用以下命令编辑:
sudo nano /etc/fstab
配额通过加入一个启用usrquota
和/或grpquota
到主硬盘的安装选项。 使用ursquota时,配额仅在特定用户上启用。 grpquota选项允许用户组上的配额。
根据所需的结果,可以独立添加这两个选项。 在fstab
文件应该启用用户配额(用于组配额添加如下编辑grpquota
)。
LABEL=DOROOT / ext4 errors=remount-ro,usrquota 0 1
通过重新安装文件系统来保存文件并启用新的装载选项,如下所示:
mount -o remount /
以下命令将在文件系统的根目录中创建一个新的配额文件。 这是配额工具用于跟踪用户磁盘大小的索引文件。 它还包含用户限制和配置的选项。
quotacheck -cum /
该命令由以下三个参数组成:
该
c
参数,指示新文件的创建,覆盖任何以前的文件。该
u
参数指示新用户的索引文件应该被创建。 要同时创建一个组索引文件,添加g
在前面的命令命令。的
m
参数表示没有只读装入完整的文件系统的需要产生的不同的索引文件。
因为m
的参数时,它可能是一个小错配发生在实际的特定用户的磁盘大小和配额方案计算出的磁盘大小。 确保当运行上一个命令时,没有用户正在将文件上传到服务器以最小化可能的不匹配。
以下命令向系统通知在所需文件系统上应启用磁盘配额。
quotaon /
类似的命令可用于关闭磁盘配额检查,从而禁用不同用户和组的配额。
quotaoff
为不同的用户配置配额
用户配额使用配置edquota
的命令,后跟所需的用户名或组名。 该命令将打开默认配置的文本编辑器。 在本指南中,我们假设用户ftpuser
应该得到的10Mb的配额。 使用的命令如下:
edquota ftpuser
这将打开配额文件进行编辑
Disk quotas for user ftpuser (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/disk/by-label/DOROOT 8 10000 10240 2 0 0
文本编辑器显示7个不同的列:
表示启用配额的文件系统的名称
指示用户当前使用的块的数量
指示文件系统上的用户的软块限制
指示文件系统上的用户的硬块限制
指示用户当前使用的inode的数量
表示用于文件系统上的用户的软inode限制
表示用于文件系统上的用户的硬inode限制
块指的是磁盘空间量,而索引节点指的是可以使用的文件/文件夹数。 大多数时间的块数量将在配额中使用。
硬块限制是用户或组可以使用的磁盘空间的绝对最大值。 一旦达到此限制,则不能使用更多的磁盘空间。 软块限制定义了可以使用的最大磁盘空间量。 然而,与硬限制不同,软限制可以超过一定量的时间。 这个时间称为宽限期。 有关宽限期的更多信息,请参阅本指南的后面部分。
在上面的例子中,使用软限制9,785Mb和硬限制10Mb。 要查看动作配额,可以启动FTP / SFTP传输,其中将上传多个文件,例如总大小为12 Mb(只要大于硬限制)。 FTP / SFTP客户端将指示传输错误,这意味着用户将无法上传任何文件。 当然,10Mb不是一个有意义的配额。 在本指南中,每个用户将获得976 Mb的软限制和1 GB的硬限制。 配置如下所示:
Disk quotas for user ftpuser (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/disk/by-label/DOROOT 8 1000000 1048576 2 0 0
要检查特定用户的配额,可以在用户或组后面使用quota命令
quota ftpuser
它给出以下输出
Disk quotas for user ftpuser (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/disk/by-label/DOROOT 8 1000000 1048576 2 0 0
生成报告
可以根据不同的配额生成报告。 使用以下命令:
repquota -a
它产生以下输出
*** Report for user quotas on device /dev/disk/by-label/DOROOT
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
------------------------------------------------------------------------------------
root -- 1118708 0 0 37093 0 0
daemon -- 68 0 0 4 0 0
man -- 9568 0 0 139 0 0
www-data -- 2908 0 0 15 0 0
nobody -- 0 0 0 1 0 0
libuuid -- 24 0 0 2 0 0
Debian-exim -- 44 0 0 10 0 0
mysql -- 30116 0 0 141 0 0
ftpuser -- 8 1000000 1048576 2 0 0
可选:指定宽限期
为了给当前用户一些时间来减少他们在Droplet上的文件,可以配置宽限期。 这是允许的时间,用户可以超过其软限制,同时仍然保持在硬限制。 宽限时间使用以下命令配置[注意这是系统范围的; 没有用户特定的配置是可能的]。 宽限期可以以秒,分钟,小时,天,周或月表示。
edquota -t
该命令给出以下输出,并指定可以使用的不同时间单位。 对于本指南,使用7天的宽限期。
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/disk/by-label/DOROOT 7days 7days
结论
当用户传输/创建/移动/删除文件/文件夹时,配额将自动更新并强制执行。 请记住,配额程序通过查看特定文件/文件夹的所有者或组来工作。 SSH用户可以通过更改其文件的所有者或组来转义配额。