热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux限制目录大小写,Linux磁盘配额(Quota)与进阶文件系统管理

Quota的一般用途1、针对WWWserver,例如:每个人的网页空间的容量限制2、针对mailserver,例如:每个人的

Quota 的一般用途

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

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

3、针对file server,例如:每个人最大的可用网络硬盘空间

针对 Linux 系统主机

1、限制某一群组所能使用的最大磁盘配额

2、限制某一用户的最大磁盘配额

3、以Link的方式,来使邮件可以作为限制的配额

Quota 的使用限制

1、仅能针对整个filesystem

2、核心必须支持quota

3、Quota的记录文件

4、只对一般身份使用者有效

你不能针对『某个目录』来进行Quota的设计,但你可以针对『某个文件系统(filesystem)』来设定。

Quota 的规范设定项目

1、容量限制或档案数量限制(block 或 inode)

限制inode用量:可以管理使用者可以建立的『档案数量』

限制block用量:管理用户磁盘容量的限制

2、柔性劝导与硬性规定(soft/hard):

hard:表示使用者的用量绝对不会超过这个限制值

soft:表示使用者在低于soft限值时,可以正常使用磁盘,但若超过soft切低于hard的限值,会有告警信息。

3、会倒数计时的宽限时间(grace time):

宽限时间只有在用户的磁盘用量介于soft到hard之间时,才会出现且会倒数的一个东西。

当你的磁盘用量即将到达hard且超过soft时,系统会给予警告,但也会给一段时间让用户自行管理磁盘。一般预设的宽限时间为七天,如果七天内你都不进行任何磁盘管理,那么soft限制值会即刻取代hard限值来作为quota的限制。

一个Quota实作范例

1、设一专题,5个人为一组,quota1,quota2,quota3,quota4,quota5 初始群组都为quotagroup

2、账号的磁盘容量限制值:我想让这五个用户都能够取得300M的磁盘使用量(hard),档案数量则不予限制。此外,只要容量使用率超过250M,就予以警告(soft)

3、群组的限额:由于系统里面还有其他用户存在,因此我仅承认quotagroup这个群组最多仅能使用1G的容量,

4、宽限时间的限制:最后每个使用者在超过soft限制值之后,都还能够有14天的宽限时间。

用脚本来创建账号添加密码等工作

[root@www.linuxidc.com ~]# vi addaccount.sh

#!/bin/bash

groupadd quotagroup

for username in quota1 quota2 quota3 quota4 quota5

do

useradd -g quotagroup $username

echo "$username" | passwd --stdin $username

done

实作Quota流程-1:文件系统支援

由于Quota仅针对整个文件系统来进行规划,所以我们得先查一下,/home是否是个独立的filesystem

[root@www.linuxidc.com ~]# df -h /home

Filesystem Size Used Avail Use% Mounted on

/dev/hda3 4.8G 740M 3.8G 17% /home            <&#61;&#61;&#61;/home 确实是独立的

使用如下的方式来手动加入quota的支持

[root&#64;www.linuxidc.com ~]# mount -o remount,usrquota,grpquota /home

[root&#64;www.linuxidc.com ~]# mount | grep home

/dev/hda3 on /home type ext3 (rw,usrquota,grpquota)

当你重新挂载时&#xff0c;系统会同步更新/etc/mtab这个档案&#xff0c;所以你必须要确定/etc/mtab已经加入usrquota, grpquota的支持到你所想要设定的文件系统中。

[root&#64;www.linuxidc.com ~]# vi /etc/fstab

LABEL&#61;/home /home ext3 defaults,usrquota,grpquota 1 2

[root&#64;www.linuxidc.com ~]# umount /home

[root&#64;www.linuxidc.com ~]# mount -a

[root&#64;www.linuxidc.com ~]# mount | grep home

/dev/hda3 on /home type ext3 (rw,usrquota,grpquota)

实作Quota流程-2&#xff1a;建立quota记录文件

其实Quota是透过分析整个文件系统中&#xff0c;每个使用者(群组)拥有的档案总数与总容量&#xff0c;再将这些数据记录在该文件系统的最顶层目录&#xff0c;然后在该记录文件中再使用每个账号(或群组)的限制值去规范磁盘使用量

quotacheck &#xff1a;扫瞄文件系统并建立Quota的记录文件

[root&#64;www.linuxidc.com ~]# quotacheck [-avugfM] [/mount_point]

选项与参数&#xff1a;

-a &#xff1a;扫瞄所有在/etc/mtab内&#xff0c;含有quota支持的filesystem

-u &#xff1a;针对用户扫瞄档案与目录的使用情况&#xff0c;会建立aquota.user

-g &#xff1a;针对群组扫瞄档案与目录的使用情况&#xff0c;会建立aquota.group

-v &#xff1a;显示扫瞄过程的信息

-f &#xff1a;强制扫瞄文件系统&#xff0c;并写入新的quota配置文件

-M &#xff1a;强制以读写的方式扫瞄文件系统&#xff0c;只有在特殊情况下才会使用

quotacheck 的选顷你只要记得『 -avug 』一起下达即可

实作Quota流程-3&#xff1a;Quota启劢、关闭与限制值设定

quotaon &#xff1a;启动quota的服务

[root&#64;www.linuxidc.com ~]# quotaon [-avug]

[root&#64;www.linuxidc.com ~]# quotaon [-vug] [/mount_point]

选项与参数&#xff1a;

-u &#xff1a;针对使用者启动quota(aquota.user)

-g &#xff1a;针对群组启动quota(aquota.group)

-v &#xff1a;显示启动过程的相关讯息

-a &#xff1a;根据/etc/mtab内的filesystem设定启动有关的quota,若不加-a的话&#xff0c;则后面需加上特定的那个filesystem

[root&#64;www.linuxidc.com ~]# quotaon -auvg

/dev/hda3 [/home]: group quotas turned on

/dev/hda3 [/home]: group quotas turned on

quotaoff &#xff1a;关闭quota的朋务

[root&#64;www.linuxidc.com ~]# quotaoff [-a]

[root&#64;www.linuxidc.com ~]# quotaoff [-ug] [/mount_point]

选项与参数&#xff1a;

-a &#xff1a;全部的filesystem的quota都关闭

-u &#xff1a;仅针对后面接的那个/mount_point关闭user quota

-g &#xff1a;仅针对后面接的那个/mount_point关闭group quota

edquota &#xff1a;编辑账号/群组的限值与宽限时间

[root&#64;www.linuxidc.com ~]# edquota [-u username] [-g groupname]

[root&#64;www.linuxidc.com ~]# edquota -t <&#61;&#61;修改宽限时间

[root&#64;www.linuxidc.com ~]# edquota -p 范本账号-u新账号

选项与参数&#xff1a;

-u &#xff1a;后面接账号名称。可以进入quota的编辑画面(vi)去设定username的限制值

-g &#xff1a;后面接组名。可以进入quota的编辑画面(vi)去设定groupname的限制值

-t &#xff1a;可以修改宽限时间

-p &#xff1a;复制范本。那个模板账号为已经存在并且已设定好quota的使用者

[root&#64;www.linuxidc.com ~]# edquota -u quota1

Disk quotas for user quota1 (uid 710):

Filesystem blocks soft hard inodes soft hard

/dev/hda3     80             0     0         10         0         0

实作Quota流程-4&#xff1a;Quota限制值的报表

quota &#xff1a;单一用户的quota报表

[root&#64;www.linuxidc.com ~]# quota [-uvs] [username]

[root&#64;www.linuxidc.com ~]# quota [-gvs] [groupname]

选项与参数&#xff1a;

-u &#xff1a;后面可以接 username &#xff0c;表示显示出该用户的quota限制值&#xff0c;若不接username&#xff0c;表示显示执行者的

-g &#xff1a;后面可接groupname&#xff0c;表示显示出该群组的quota限制值

-v &#xff1a;显示每个用户在filesystem的quota值

-s &#xff1a;使用1024为倍数杢挃定单位&#xff0c;会显示如M之类的单位

[root&#64;www.linuxidc.com ~]# quota -uvs quota1 quota2

[root&#64;www.linuxidc.com ~]# quota -gvs quotagroup

repquota &#xff1a;针对文件系统的限额做报表

[root&#64;www.linuxidc.com ~]# repquota -a [-vugs]

选项与参数&#xff1a;

-a &#xff1a;直接到/etc/mtab搜寻具有quota标志的filesystem&#xff0c;并报告quota的结果

-v &#xff1a;输出的数据将汗有filesystem相关的详细信息

-u &#xff1a;显示出用户的quota限值

-g &#xff1a;显示出个别群组的quota限值

-s &#xff1a;使用M, G为单位显示结果

[root&#64;www.linuxidc.com ~]# repquota -auvs

实作Quota流程-5&#xff1a;测试与管理

用户测试&#xff1a;

[myquota1&#64;www ~]# dd if&#61;/dev/zero of&#61;bigfile bs&#61;1M count&#61;270

看什么时候达到报警&#xff0c;什么达到阀值等

用报表方式查看

[root&#64;www.linuxidc.com ~]# repquota -auv

warnquota &#xff1a;对超过限额者发出警告信

[root&#64;www.linuxidc.com ~]# vi /etc/warnquota.conf

SUBJECT &#61; NOTE: You are exceeding your allocated disk space limits <&#61;&#61;第10行

CC_TO &#61; "root&#64;localhost" <&#61;&#61;第11行

MESSAGE &#61; Your disk usage has exceeded the agreed limits\ <&#61;&#61;第21行

on this server|Please delete any unnecessary files on following filesystems:|

SIGNATURE &#61; root&#64;localhost <&#61;&#61;第25行

# 可以将他改成如下的模样啊&#xff01;

SUBJECT &#61; 注意&#xff1a;你在本系统上拥有的档案容量已经超过最大容许限额

CC_TO &#61; "root&#64;localhost" <&#61;&#61;除非你要寄给其他人&#xff0c;否则这个顷目可以不改

MESSAGE &#61; 你的磁盘容量已经超过本机的容许限额&#xff0c;|\

请在如下的文件系统中&#xff0c;删除不必要的档案&#xff1a;|

SIGNATURE &#61; 你的系统管理员 (root&#64;localhost)

# 在MESSAGE内的 | 代表断行的意思&#xff0c;反斜杠则代表连接下一行

Subject: 注意&#xff1a;你在本系统上拥有的档案容量已经超过最大容许限额

To: quota1&#64;www.pica.com

Cc: root&#64;www.linuxidc.com.pica.com

setquota &#xff1a;直接于指令中设定quota限额

[root&#64;www.linuxidc.com ~]# setquota [-u|-g] 名称 block(soft) block(hard) inode(soft) inode(hard) 文件系统

观察原始的quota5限值&#xff0c;并给予soft/hard分别为100000/200000

[root&#64;www.linuxidc.com ~]# quota -uv quota5

等价于&#61;&#61;

[root&#64;www.linuxidc.com ~]# setquota -u quota5 100000 200000 0 0 /home

逻辑滚动条管理员(Logical Volume Manager)

Physical Volume &#61;&#61; PV 实体滚动条

PV 阶段

pvcreate     &#xff1a;将实体partition建立成为PV

pvscan         &#xff1a;搜寻目前系统里面任何具有PV的磁盘

pvdisplay &#xff1a;显示出目前系统上面的PV状态

pvremove     &#xff1a;将PV属性移除&#xff0c;让该partition且具有PV属性

[root&#64;www.linuxidc.com ~]# pvcreate /dev/hda{6,7,8,9}

[root&#64;www.linuxidc.com ~]# pvscan

[root&#64;www.linuxidc.com ~]# pvdisplay

Volume Group VG &#61;&#61; 滚动条群组

VG 阶段

vgcreate     &#xff1a;就是主要建立VG的指令

vgscan         &#xff1a;搜寻系统上面是否有VG存在

vgdisplay &#xff1a;显示目前系统上面的VG状态

vgextend     &#xff1a;在VG内增加额外的PV

vgreduce     &#xff1a;在VG内移除PV

vgchange     &#xff1a;设定VG是否启动(active)

vgremove     &#xff1a;删除一个VG

[root&#64;www.linuxidc.com ~]# vgcreate [-s N[mgt]] VG名称 PV名称

选项与参数&#xff1a;

-s &#xff1a;后面接PE的大小(size),单位可以是m,g,t(大小写均可)

[root&#64;www.linuxidc.com ~]# vgcreate -s 16M jinqvg /dev/hda{6,7,8}

Volume group "jinqvg" successfully created

[root&#64;www.linuxidc.com ~]# vgscan

[root&#64;www.linuxidc.com ~]# vgdisplay

将剩余的PV(/dev/hda9)丢给jinqvg

[root&#64;www.linuxidc.com ~]# vgextend jinqvg /dev/hda9

[root&#64;www.linuxidc.com ~]# vgdisplay

Physical Extend PE &#61;&#61; 实体延伸区块

Logical Volume LV &#61;&#61; 逻辑滚动条

LV 阶段

lvcreate     &#xff1a;建立LV啦

lvscan         &#xff1a;查询系统上面的LV

lvdisplay &#xff1a;显示系统上面的LV状态

lvextend     &#xff1a;在LV里面增加容量

lvreduce     &#xff1a;在LV里面减少容量

lvremove     &#xff1a;删除一个LV

lvresize     &#xff1a;对LV进行容量大小的调整

[root&#64;www.linuxidc.com ~]# lvcreate [-L N[mgt]] [-n LV名称] VG名称

[root&#64;www.linuxidc.com ~]# lvcreate [-l N] [-n LV名称] VG名称

选项与参数&#xff1a;

-L &#xff1a;后面接容量,容量的单位可以是M,G,T等,要注意的是,最小单位为PE

-l &#xff1a;后面可以接PE的『个数』,而不是数量

-n &#xff1a;后面接的就是LV的名称

将整个jinqvg通通分配给jinqlv

[root&#64;www.linuxidc.com ~]# lvcreate -l 356 -n jinqlv jinqvg    或

[root&#64;www.linuxidc.com ~]# lvcreate -L 5.56G -n jinqlv jinqvg

[root&#64;www.linuxidc.com ~]# ll /dev/jinqvg/jinqlv

[root&#64;www.linuxidc.com ~]# lvdisplay

三、文件系统阶段

#1. 格式化、挂载与观察我们的LV

[root&#64;www.linuxidc.com ~]# mkfs -t ext3 /dev/jinqvg/jinqlv

[root&#64;www.linuxidc.com ~]# mkdir /mnt/lvm

[root&#64;www.linuxidc.com ~]# mount /dev/jinqvg/jinqlv /mnt/lvm

[root&#64;www.linuxidc.com ~]# df

#2. 放大LV容量

1. 用fdisk设定新的具有8e system ID的partition

2. 利用pvcreate建置PV

3. 利用vgextend将PV加入我们的jinqvg

4. 利用lvresize将新加入的PV内的PE加入jinqlv中

5. 透过resize2fs将文件系统的容量确实增加

[root&#64;www.linuxidc.com ~]# fdisk /dev/hda

[root&#64;www.linuxidc.com ~]# pvcreate /dev/hda10

[root&#64;www.linuxidc.com ~]# pvscan

[root&#64;www.linuxidc.com ~]# vgextend jinqvg /dev/hda10

[root&#64;www.linuxidc.com ~]# vgdisplay

[root&#64;www.linuxidc.com ~]# lvresize -l &#43;179 /dev/jinqvg/jinqlv

[root&#64;www.linuxidc.com ~]# lvdisplay

[root&#64;www.linuxidc.com ~]# dumpe2fs /dev/jinqvg/jinqlv

[root&#64;www.linuxidc.com ~]# resize2fs [-f] [device] [size]

选项与参数&#xff1a;

-f             &#xff1a;强制进行resize的动作

[device]&#xff1a;装置的文件名

[size]     &#xff1a;可以加也可以不加。如果加上size的话&#xff0c;那么就必项要给予一个单位&#xff0c;譬如M,G等等

完整的将LV的容量扩充到整个filesystem

[root&#64;www.linuxidc.com ~]# resize2fs /dev/jinqvg/jinqlv

结论&#xff1a;扩充LV时不需要umount lv,而且新扩充LV时&#xff0c;数据不会丢失。

卸载要从lv开始0b1331709591d260c1c78e86d0c51c18.png



推荐阅读
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Linux磁盘的分区、格式化的观察和操作步骤
    本文介绍了如何观察Linux磁盘的分区状态,使用lsblk命令列出系统上的所有磁盘列表,并解释了列表中各个字段的含义。同时,还介绍了使用parted命令列出磁盘的分区表类型和分区信息的方法。在进行磁盘分区操作时,根据分区表类型选择使用fdisk或gdisk命令,并提供了具体的分区步骤。通过本文,读者可以了解到Linux磁盘分区和格式化的基本知识和操作步骤。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
author-avatar
ik人生如梦场
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有