千家信息网

linux中如何给磁盘配额

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章主要为大家展示了"linux中如何给磁盘配额",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"linux中如何给磁盘配额"这篇文章吧。磁盘配额(quo
千家信息网最后更新 2024年11月26日linux中如何给磁盘配额

这篇文章主要为大家展示了"linux中如何给磁盘配额",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"linux中如何给磁盘配额"这篇文章吧。

磁盘配额(quota)比较常用的几个情况是:

* 针对WWW server,例如:每个人的网页空间的容量限制

* 针对mail server,例如:每个人的邮件空间限制

* 针对file server:每个人最大的可用网络硬盘空间(教学环境中比较常见)

上面的是针对网络服务的设计,如果是针对linux系统主机上面的设置,用途有下面这些:

* 限制某一用户组最大磁盘配额,可用设置普通用户组和VIP用户组,有点类似会员制,VIP用户相应的磁盘空间大小比较大些,普通用户想成为VIP,嘿嘿,交会费就行。

* 限制某一用户磁盘配额,在对用户组进行限制后,继续对该用户组的每个用户进行设置,可以使用户组下有更公平的分配。

* 以Link方式使邮件可以作为限制的配额(更改/var/spool/mail这个路径)

====Quota的规范设置选项====

* 限制文件数量或者容量(inode或者block),以block设置为常见

* soft/hard,hard > soft,超过soft后,在grace time(宽限时间)内登陆系统后会给出磁盘爆满的警告

* 会倒计时的宽限时间 grace time,如果过了这个时间还没降到比soft低,直接锁定磁盘使用,并且hard减少为soft值。

坐而言不如起而行,先来设计一个实际的quota例子:

* 五个人的账号分别为user1,user2,user3,user4,user5,密码都是123456,初始用户组都为quotagroup,其他账号属性为默认。

* 账号的磁盘容量限制:五个用户都能够取得300MB的磁盘使用量(hard),文件数量不予限制。此外,只要容量超过250MB时候给予警告(soft)

* 用户组的限额:由于我的系统里面可能还有其他用户存在,我仅承认quotagroup这个组最多使用1GB的容量。也就是说,如果user1,user2,user3都用了280MB的空间,那么user4,user5就只能使用1000MB – 280MB*3 = 160MB的空间了。

* 宽限日期:14天,达到250MB的soft值后,14天内给予警告,如果14天内磁盘容量还没降到比250MB低,直接锁定用户。丫的叫你放电影到硬盘上又不删。

建立5个账号的shell脚本:


代码如下:


#!/bin/bash
# 使用script新建实验quota所需的环境
groupadd quotagroup
for username in user1 user2 user3 user4 user5
do
useradd -g quotagroup $username
echo "123456" | passwd --stdin $username
done

接下来实践下quota流程:

# df -h /home

文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 69G 4.4G 62G 7% /

因为我用的虚拟机,自动被分区,只有一个根分区/挂载sda3文件系统,所以我会针对/来进行,不过一般来讲不建议直接在/下面设置quota。

# mount | grep ‘\s/\s’

/dev/sda3 on / type ext4 (rw,relatime,seclabel,user_xattr,barrier=1,data=ordered)

通过查看/dev/sda3的数据知道是哦那个ext4文件系统,那么肯定支持quota

修改配置文件/etc/fstab,让/支持quota:

UUID=2f08675e-289a-404a-a13e-4802dec910e9 / ext4 defaults,usrquota,grpquota 1 1

重点在上面粗体显示的usrquota,grpquota

# umount / (我勒个擦,根目录你怎么umount,还是重启吧)

# mount -a

# mount | grep "\s/\s"

/dev/sda3 on / type ext4 (rw,relatime,seclabel,user_xattr,barrier=1,data=ordered,usrquota,grpquota)

看到了吧,可以针对用户组和用户进行磁盘配额了。

====新建quota配置文件====

# quotacheck [-avugfM] [/mount_point]

-a:扫描所有在/etc/mtab内,含有quota支持的文件系统,加上此参数后,后面的/mount_point就不用写了

-u:针对用户扫描文件与目录使用情况,会新建aquota.user

-g:针对用户组扫描文件与目录使用情况,会新建aquota.group

-v:显示扫描过程信息

-f:强制扫描文件系统,并写入quota配置文件(危险,慎用)

-M:强制以读写方式扫描文件系统,只有在特殊情况下才会使用。

实际上只需要记住前面四个参数 -augv即可。

# ll -d /a*

-rw——-. 1 root root 8192 10月 27 02:06 /aquota.group
-rw——-. 1 root root 7168 10月 27 02:06 /aquota.user

不要手动去修改这两个quota配置文件啊,这个是quota自己去更新的。

====quota启动、关闭与限制值的设置====

# quotaon [-avug] <===启动quota服务

# quotaon [-vug] /mount_point

上面的参数跟之前的一模一样,这个命令只需要执行一次,下次系统启动后会自动再执行的

# quotaoff [-a] <===关闭quota服务

# quotaoff [-ug] /mount_point

# edquota [-u username] [-g groupname] <===编辑quota的宽限值

# edquota -t <===修改宽限时间

# edquota -p 范本账号 -u 新账号

这些都很简单,不解释

# edquota -u user1

Disk quotas for user user1 (uid 1002):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 28 0 0 8 0 0

解释下这七个字段:

1,文件系统,或者是partition

2,磁盘容量(blocks):这个是quota自己自动算出来的,单位为KB,不要改动它

3,soft:磁盘容量(block)的soft限制值,单位为KB

4,hard:block的hard限制值,单位为KB

5,文件数量(inodes):这个也是quota自己自动算出来的,单位为个,不要改动它

6,soft:inode的soft值

7,hard:inode的hard值

我把它修改成如下的:

Disk quotas for user user1 (uid 1002):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 28 250000 300000 8 0 0

注意:我用的1000去近似1024,方便点,其实真正的250MB = 250 * 1024KB,这么说你了解麽 o(╯□╰)o

还有其他四个用户,直接参考copy user1的设置就可以了。

# edquota -p user1 -u user2

# edquota -p user1 -u user3

# edquota -p user1 -u user4

# edquota -p user1 -u user5

更改用户组的quota限额:

# edquota -g quotagroup

Disk quotas for group quotagroup (gid 1002):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 140 900000 1000000 35 0 0

最后,将宽限时间改成14天吧:

# edquota -t

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/sda3 14days 7days

到这步,所有的设置都已经完成,接下来验收成果:

====quota限制值的报表====

单一用户/用户组的quota报表:

# quota [-uvs] username列表

# quota [-gvs] groupname列表

-u:后接用户名,不填表示当前用户

-g:后接用户组

-v:显示每个用户或者用户组在文件系统中的quota值

-s:使用好看的单位,比如M之类的

# quota -uvs user1 user2

Disk quotas for user user1 (uid 1002):
Filesystem space quota limit grace files quota limit grace
/dev/sda3 28K 245M 293M 8 0 0
Disk quotas for user user2 (uid 1003):
Filesystem space quota limit grace files quota limit grace
/dev/sda3 28K 245M 293M 8 0 0

针对整个文件系统的报表:

# repquota -a [-vugs]

-a:直接到/etc/mtab查询具有quota标志的文件系统,并报告quota结果

-v:输出的数据将含有文件系统相关的详细信息

-u:显示出用户的quota限制(这个是默认值)

-g:显示个别用户组的quota限制值

-s:使用K,M,G的单位显示

测试下实际效果:

# su – user1

# dd if=/dev/zero of=bigfile bs=1M count=270

# repquota -auv

dd if=/dev/zero of=bigfile2 bs=1M count=300

dd: 正在写入"bigfile2″: 超出磁盘限额
记录了23+0 的读入
记录了22+0 的写出
24047616字节(24 MB)已复制,0.648835 秒,37.1 MB/秒

# du -sk

300000 . <===果然到了极限

[user1@(none) ~]$ ll
总用量 299968
-rw-r–r–. 1 user1 quotagroup 283115520 10月 27 02:42 bigfile
-rw-r–r–. 1 user1 quotagroup 24047616 10月 27 02:44 bigfile2

当用户超过了soft,然后再宽限日期又没有删除空间,导致用户的hard变成了原来的soft,用户再也使用不了磁盘,那么怎么办呢。当然是进去删除文件就行了啊。不过很多用户不知道怎么回事,最好在用户超过限额(soft)后给用户发警告信:

# warnquota (fedora上面没有这个命令,囧!)

==== 不改动既有系统的quota实例(link方式)====

如果/var/spool/mail不是一个独立分区,你想让用户邮件信箱与主文件夹的总体 磁盘使用量固定,但/home是单独的文件系统,跟/var/spool/mail不一样。

可以这样解决:

1,将/var/spool/mail这个目录整个完整的移动到/home下面

2,建立连接 # ln -s /home/mail /var/spool/mail,那么现在所有往/var/spool/mail里面放的数据全部放到/home/mail里面去了。

3,将/home/进行quota限额设置

注意,进行以上设置的时候,可能需要关闭SELinux

以上是"linux中如何给磁盘配额"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

用户 文件 磁盘 系统 用户组 限制 容量 配额 空间 单位 账号 时间 限制值 情况 配置 内容 参数 实际 报表 数据 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 蜀山区专业性网络技术咨询 以网络安全画一幅画优秀 地铁服务器交换机设备 晋宁区参考软件开发价格走势 网络安全心得体会范文4篇 软件开发中拆分SR是什么 怎么让文明重启的服务器更信任 掌控计算机网络技术的基础概念 怎么查找软件开发商 江苏省大学网络安全专业排行 软件开发第三方审计 目前网络安全厂家 数据库小程序工具 大巴服务器 创建数据库上下文 上海中兴软件开发待遇怎么样 服务器 0308什么意思 传奇世界服务器分布 网络安全保密的面试题 说明网络安全所面临的威胁 一个数据库几部分组成 软件开发师的入行资质和发展展望 网络安全行业年薪 农行北京软件开发中心待遇 sql打开数据库检索异常 社区宣传国家网络安全宣传周 成都软件开发定做 魔兽怀旧服哪个服务器装备便宜 大话西游手游 服务器 三明仁鼎网络技术有限公司
0