RHEL5.4配置磁盘配额
磁盘配额管理

在多用户系统中,如果没有对用户使用的磁盘空间做出限制,用户无限制地存放数据和文件,可能会导致系统磁盘空间告警。
如果存放的是无用数据,就会导致磁盘空间白白浪费。
磁盘配额可以限制用户或组在磁盘上存放文件的空间,这样既可以让用户拥有一定的存储空间,又可以避免用户无限制地存放数据导致系统磁盘空间不足。
在Linux系统中,为磁盘配额提供支持的是quota软件包,如果系统中没有安装这个软件包,用户可以自行安装。
在设置磁盘配额之前,必须要获文件系统的支持。
为此需要系统中的自动挂载文件/etc/fstab,为相应的文件系统添加挂载参数:usrquota(启用用户限额)和grpquota(启用用户组限额)。
以磁盘分区/dev/sda3为例,讲解如何建立磁盘配额。
(1)修改自动挂载文件/etc/fstab,启用文件系统sda3的配额支持,将其修改为以下内容:(2)修改完之后,需要重新挂载文件系统,以启动磁盘配额支持:也可以使用以下命令重新挂载/etc/fstab中记录的所有分区:实在不行就重新启动系统即可。
(3)修改完成之后,可以使用mount命令验证设置:如果在命令输出中看到usrquota和grpquota,表明已经成功启用磁盘配额支持。
启用了文件系统的配额支持后,还不能立即使用配额,还必须检查相应的文件系统,并建立磁盘配额文件。
检测文件系统并建立磁盘配额文件,需要使用命令quotacheck。
【命令格式】【常用选项】【用法示例】(1)检查磁盘分区/dev/sdd1,并将相关信息写入到配额文件中:(2)如果要验证上述命令的执行结果,可以使用ls命令查看建立的配额配置文件:从上面的命令输出可以看出,命令在文件系统的根目录中建立了两个文件:aquota.group和er。
这两个文件分别用于存放用户和用户组的磁盘配额信息,包括文件系统的使用情况及配置信息等。
在所有用户都可以使用的文件系统上,并不需要为每个用户都设置磁盘配额,通常只需要为那些经常存放大文件、严重占用磁盘空间的用户设置即可。
案例6 磁盘配额

案例6 磁盘配额
案例
你是某公司的网络管理员,现公司有一个利用RHEL架设的文件服务器提供给公司所有员工存放文件,但是由于有些用户在文件服务器上存放了太多文件,所以公司决定要解决这个问题。
案例要求
要求实现如下功能:
1.每个用户最多只能建立200个文件,而且不能超过20MB。
2.给用户5天时间备份文件。
部署实施
分析:要解决问题需要做下面几项工作:1.设置用户账户的磁盘配额2.给用户5天的期限步骤:
1.设置用户账户的磁盘配额
(1)利用getent工具或得所有的账号信息
(2)利用awk命令将UID大于500的普通用户账户提取出来
(3)使用setquota工具修改磁盘配额
(4)service named start
2.修改期限
利用at定时服务期限,通过setquota自动修改期限。
基于linux系统的磁盘限额的实现方法

基于linux系统的磁盘限额的实现方法在Linux系统中,磁盘限额(disk quota)是一种机制,可用于限制用户或组在文件系统上的磁盘使用量。
它允许系统管理员为每个用户或组设置独立的磁盘配额,以确保磁盘资源被合理使用。
本文将详细介绍在Linux系统中实现磁盘限额的方法。
1.安装并启用磁盘配额支持:```/dev/sda1 /home ext4 defaults,usrquota,grpquota 0 0```2. 创建quota文件:使用命令`quotacheck`创建磁盘限额所需要的quota文件。
quota文件将存储用户和组的磁盘使用信息。
可以使用以下命令创建quota文件:```$ quotacheck -cug /home```上述命令将在/home目录下创建用户和组的quota文件。
3.开启磁盘限额:可以使用以下命令来开启磁盘限额:```$ quotaon /home```4.设置用户和组的磁盘限额:使用命令`edquota`可以为用户或组设置磁盘限额。
例如,为用户"john"设置1GB的磁盘限额:```$ edquota -u john```5.查看磁盘限额:使用命令`quota`可以查看当前用户或组的磁盘使用情况和限额。
例如,查看用户"john"的磁盘限额:```$ quota -u john```上述命令将显示出用户"john"的磁盘使用情况和限额。
6.超过磁盘限额的处理:当用户或组超过磁盘限额时,系统可以采取不同的处理方式。
可以通过修改/etc/quotatab文件来设置处理方式。
常见的处理方式有:- softlimit:在超过软限制时,用户会收到警告信息。
- hardlimit:超过硬限制时,用户无法继续写入文件。
可以通过修改/etc/quotatab文件来设置处理方式。
例如,将用户超过软限制时的处理方式设置为"softlimit":```/dev/sda1 softlimit```以上就是基于Linux系统的磁盘限额的实现方法。
磁盘配额设定

磁盘配额设定实现磁盘配额你可以通过实现磁盘配额来限制磁盘空间,因此当⽤户使⽤了过多的磁盘空间或分区将要充满时,磁盘配额可以为个体⽤户配置也可以为⽤户组配置。
这种灵活性既能够给每个⽤户分配⼀个较⼩的(如电⼦邮件和报告),⼜使他们正从事的项⽬能够拥有较⼤的配额(假定项⽬有⾃⼰的组群)。
除此以外,配额不仅能够被设置成对所⽤磁盘块数量的控制,还能够被设置成对内节点数量的控制对内节点的控制能够控制可被创建的⽂件数量。
要实现磁盘配额,quota RPM 必须在系统上被安装。
关于安装RPM 软件包的详情,请参阅6.1. 配置磁盘配额要实现磁盘配额,请使⽤以下步骤:修改/etc/fstab 来启⽤每个⽂件系统的配额重新挂载⽂件系统创建配额⽂件,重新⽣成磁盘⽤量表分配配额以上步骤在下⾯各节中被详细讨论。
6.1.1. 启⽤配额以根⽤户⾝份使⽤⼀个⽂本编辑器来编辑/etc/fstab ⽂件,给需要配额的⽂件系统添加usLABEL=/ / ext3 defaults LABEL=/boot /boot ext3 defaultsnone /dev/pts devpts gid=5,mode=620 LABEL=/home /home ext3 defaults,usrquota,gr none /proc proc defaultsnone /dev/shm tmpfs defaults/dev/hda2 swap swap defaults/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0在上⾯的例⼦中,/home ⽂件系统上启⽤了⽤户和组群配额。
6.1.2. 重新挂载⽂件系统添加了userquota 和grpquota 选项后,重新挂载每个fstab 条⽬被修改的⽂件系统。
配置磁盘配额服务

linux磁盘配额服务
申修成
为了节约Linux系统硬盘宝贵空间,并要求为每账户及组设置容量限制,并能对文件及目录数进行限制。
需要配置磁盘配额,操作如下。
1.修改/etc/fstab
加入usrquota(账户磁盘容量限制),grpquota(组磁盘容量限制), 在/home分区作限制(我在分区时多添加一个/home分区)
2.创建配额文件
#reboot /init6
#quotacheck –cmug 检查磁盘文件
如果重启没有生成两个文件,我们使用touch 来新建er 和组配额文件aquota.group
1.#Touch /home/aquota.group
2.#Touch /home/er
3.# quotacheck -fcmug /home(再检测一次否硬盘配置生效) 3.设置配额
如:限制xh1账户只能使用20M空间
#Edquota -u xh1
4.限制文件及目录数
如文件及目录总数为6个,配置如下:
5.配置相同账户
#edquota –p xh1 xh2
把xh1的配置粘贴到xh2账户上,两个账户配置一样。
6.对组作磁盘配额
如:要求对xinhua组使用空间不超过200M
#edquota –g xinhua
7.修改使用时间
#edquota -t
上图表示没有时间限制。
磁盘配额的概述及管理

磁盘配额的概述及管理为什么创建磁盘配额在Linux根分区的磁盘空间耗尽时,Linux将无法再创建新的文件(包括程序运行的临时文件),从而导致服务程序崩溃,系统无法启动等故障现象。
为了避免出现类似问题,可以设置启用磁盘配额功能,对用户在指定文件系统(分区)中使用磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保证系统存储空间的稳定性和持续可用性。
使用磁盘配额的前提条件设置磁盘配额,需要安装quota 软件包,用于配置和管理磁盘配额,在RHEL 6中,系统默认安装了quota 软件包。
磁盘配额的作用范围quota软件设置的磁盘配额功能,只在指定的文件系统(分区)内有效,用户使用其他未设置配额的文件系统时,将不受限制。
磁盘配额的限制对象quota 主要针对系统中的指定用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。
对组账号设置配额后,组内所有成员使用的磁盘容量、文件数量的总和不能超过限制。
磁盘配额的限制类型# 磁盘容量:限制用户能够使用的磁盘空间的大小,默认单位为KB# 文件数量:限制用户能够使用的文件个数磁盘配额的限制方法# 软限制:指定一个软性的配额数值(如100MB的磁盘空间、80个文件),在固定的宽限期限(默认为七天)内允许超过这个限制,但系统会给出警告信息# 硬限制:指定一个硬性的配额数值(如120MB的磁盘空间、100个文件),是绝对禁止用户超过限制值,当达到硬限制值时,系统会给出警告信息并禁止继续写入数据。
硬限制的配额值应该大于软限制值,否则软限制将失效实验:下面将上篇创建的yang 逻辑卷/dev/ysf/yang 挂载到/mailbox 目录下,然后在该文件中配置实现磁盘配额功能。
1.以支持磁盘配额功能的方式挂载文件系统将usrquota, grpquota挂载参数写入到“/etc/fstab”文件中。
# chmod 777 /mailbox //为后续测试方便,允许任何用户写入数据# vim /etc/fstab //修改yang 逻辑卷的挂载配置/dev/ysf/yang /mailbox ext4 defaules,usrquota,grpquota0 0 //永久性挂载2.检测磁盘配额并生成配额文件使用quotacheck命令可以对指定的文件系统进行磁盘配额检测,也可以用来建立配额文件,以便保存用户、组在该分区的配额设置例如:执行以下操作将扫描系统中的所有文件系统,并在支持配额的文件系统中建立配额文件# quotacheck -augcv-a 表示扫描所有分区,如果不使用,将必须指定一个分区或挂载点目录作为命令参数 -u 表示检测用户配额信息-g 表示检测组配额信息-c 表示创建新的配额文件-v 表示显示命令执行过程中的细节信息# ls -l /mailbox/aquota.*可以看到新建立的配置文件,包括“er”、“aquota.group”,分别用于保存用户、组的配额设置,配置文件保存在该文件系统根下,默认权限为6003.编辑用户和组账号的配额设置使用edquota命令结合-u、-g 选项可用于编辑用户和组的配额设置,(默认调用vi 作为编辑程序),可设置磁盘容量、文件大小的软、硬限制数值。
Linux-RHEL5.4下oracle10g超详细安装记录(适合新手)

前言:作为一个新手,linux下安装oracle简直无比痛苦,如果看的途中有问题,欢迎加我QQ756058257特地写下详细记录,供新手参考,共同成长。
本人安装环境:虚拟机:VMware10,系统:RHEL5.4,64位:安装前准备:修改系统版本vi /etc/redhat-release(进入redhat-release,把5.4改成4,oracle只支持4以下的版本,装完记得改回来)进入linux安装盘的Server目录#cd /media/RHEL_5.4 i386 DVD/Server用以下指令进行批量安装包(安装包步骤网上一堆一堆乱七八糟的,下面代码是我搜集无数资料所得,一步成功,永无后患)先输入这一段#rpm -ivh compat-libstdc++-33* elfutils-libelf-devel* glibc-devel-2* glibc-headers-2* gcc-4* libgomp-4* gcc-c++-4* libaio-devel* libstdc++-devel-4* unixODBC*再安装#rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm这个包(有的不需要,还是安装了吧,不一定是精确地名字,版本有所不同,总之关键字是libXp,i386)1.3. 修改系统内核参数# vi /etc/sysctl.conf这两个是改现有的kernel.shmall = 2097152 // 该参数表示系统一次可以使用的共享内存总量(以页为单位)。
缺省值就是2097152,通常不需要修改,有的系统需要修改,但是安装时系统会有很明显提示,到时候直接修改成提示值就可以,很简单kernel.shmmax = 2147483648 // 该参数定义了共享内存段的最大尺寸(以字节为单位)。
缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G以下为新添加kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max = 65536net.ipv4.ip_local_port_range = 1024 65000net.core.rmem_default = 262144net.core.rmem_max = 262144net.core.wmem_default = 262144net.core.wmem_max = 262144kernel.shmmni = 4096 // 这个内核参数用于设置系统范围内共享内存段的最大数量。
配置磁盘配额实例

步骤一:准备好测试环境建立两个用户quser1 quser2 同属于用户组qgroup,并设置密码123456步骤二:建立新的磁盘配额支持首先建立新的分区挂载到系统目录下:fdisk –u /dev/sdb mkfs.ext3 /dev/sdb1 mount mount /dev/sdb1 /disk然后编辑/etc/fstab文件,添加如图最后一行“/dev/sdb1 /disk ext3 defaults,usrquota,grpquota 0 0”保存这样做是为了在每次开机启动的时候自动加载这个分区并挂载到/disk/下,而且其中多出的usrquota和grpquota分别是文件对用户和用户组的限制。
这样做完之后理论是要重启服务器,这样usrquota和grpquota才会被写进/etc/mtab里面,因为这个文件才是系统真正读取磁盘配额的文件。
但是对于服务器来说,重启显然不太妥当,于是乎你只要稍微做个操作就能将新添加的分区读进磁盘配额文件中,命令umount /dev/sdb1 mount –a 最后用命令grep “/dev/sdb1” /etc/mtab 来查看系统是否读进了分区sdb1的磁盘配额。
步骤三:扫描磁盘使用情况,并创建er aquota.group文件quotacheck –avug步骤四:启动磁盘配额quotaon –avug步骤五:编辑用户可使用空间edquota –u quser1其中soft指定用户最低限额,hard指定最高限额。
超过最低限额会保存一定时间,如果超过这个时间time(咱们这里先把它叫做time)当下次使用时就会不允许用户在进行添加文件或增加数据。
edquota –p quser1 quser2 将quaer1同步给quser2最后设置上边所说的time:edquota –t其中第一个时间我把默认的7天改成了1天,就是指超过最低限额只有保存一天的时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RHEL5.4配置磁盘配额下面是关于在linux下面关于磁盘配额的讨论,磁盘配额介绍目前的磁盘配额只可以针对单一的文件系统来进行操作,也就是每一个分区来做磁盘配额。
在linux下面可以针对ext2和ext3的文件系统来做磁盘配额,磁盘配额可以对用户和组来做,可以针对文件的大小和数量做磁盘配置,还可以对用户进行软限制和硬限制。
在linux下面怎么配置磁盘配额呢?第一步,在分区挂载选项上添加参数。
在磁盘配额的开始,我们要对需要做磁盘配额的分区在挂载选项上面添加两个参数,usrquota和grpquota这个两个参数,Usrquota 代表可以对用户做磁盘配额Grpquota 代表可以对组来做磁盘配额下面开始编辑/etc/fstab这个文件添加参数。
/dev/sda8 /mnt ext3 defaults,usrquota,grpquota 0 0~已经在/etc/fstab这个文件里面添加了参数,但是并不可以立即生效,敲入一条命令让其立即生效。
[root@localhost ~]#[root@localhost ~]# mount -o remount /dev/sda8[root@localhost ~]#[root@localhost ~]# mount |grep /dev/sda8/dev/sda8 on /mnt type ext3 (rw,usrquota,grpquota)[root@localhost ~]#通过mount命令我们也可以看到,usrquota和grpqouta这两个磁盘配额参数也已经添加成功了。
第二步,生成磁盘配额数据库。
[root@localhost ~]#[root@localhost ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda3 3.9G 2.6G 1.2G 70% //dev/sda6 494M 11M 458M 3% /home/dev/sda2 9.5G 2.9G 6.2G 32% /var/dev/sda1 99M 14M 81M 15% /boot tmpfs 188M 0 188M0% /dev/shm/dev/hdc 2.8G 2.8G 0 100% /media/RHEL_5.4 i386 DVD/dev/sda8 471M 11M 437M 3% /mnt[root@localhost ~]# cd /mnt/[root@localhost mnt]# lslost+found[root@localhost mnt]#通过df –h命令可以查看到我们的/dev/sda8这个分区是被挂载到/mnt下面的,我们进入了/mnt,现在里面什么东西也没有。
现在开始生成磁盘配额数据库#quotacheck -cumg /dev/sda7[root@localhost ~]# quotacheck -cumg /dev/sda8[root@localhost ~]# cd /mnt/[root@localhost mnt]# lltotal 24-rw------- 1 root root 6144 Feb 25 21:52 aquota.group-rw------- 1 root root 6144 Feb 25 21:52 erdrwx------ 2 root root 12288 Feb 25 21:39 lost+found现在可以看到,生成磁盘配额数据库后,在/mnt下面就自动的产生了两个文件,er和aquota.group这个两个文件。
这两个文件就是用来存放所有磁盘配额的信息。
第三步,启用磁盘配额。
#quotaon /dev/sda8启动磁盘配额功能,[root@localhost ~]# quotaon /dev/sda8[root@localhost ~]#当然我们也可以关闭磁盘配额的功能。
[root@localhost ~]#[root@localhost ~]# quotaoff /dev/sda8第四步,编辑磁盘配额。
# edquota user1现在我们系统中有个用户user1,我们就针对这个用户来做磁盘配额。
[root@localhost ~]#[root@localhost ~]# edquota user1Disk quotas for user user1 (uid 500):Filesystem blocks soft hard inodes soft hard/dev/sda8 0 0 0 00 0~解析下每个参数的意思,Filesystem 代表为那个分区在做磁盘配额Blocks 文件的大小Soft 软限制文件大小Hard 硬限制文件大小Inodes 文件的数量Soft 软限制文件数量Hard 硬限制文件数量有一点需要注意的是,如果在blocks这项里面已经默认就有了文件大小,那么我们在做文件大小磁盘配额限制的时候,一定要加上这个默认的文件大小,比如说在blocks这项里面已经有了20K大小的文件,那么我们在做磁盘配额限制用户只可以写如50K的数据,那么就必须加上那个默认的文件大小,也就是70K。
inodes的选项也一样,在做限制的时候也需要加上默认的inodes的文件数量。
关于软限制和硬限制软限制代表当用户写入的数据达到软限制的规定,就进行警告,但是还是可以写入数据的。
硬限制代表当用户写入的数据达到硬限制的规定,那么用户就不可以在磁盘写入数据了,强制性的。
现在我们来做一个试验,允许user1在/dev/sda8里面只可以写入100K的数据,当user1在/dev/sda8中写入的数据到达80K就进行警告。
[root@localhost ~]#[root@localhost ~]# edquota user1Disk quotas for user user1 (uid 500):Filesystem blocks soft hard inodes soft hard/dev/sda8 0 80 100 0 0~我们将user1的软限制设为80K,硬限制设为100K了。
现在我们来测试一下,磁盘配额有没有生效。
可以看到idoes这项都是0,如果是0就表示这项不生效。
为了试验效果,首先将/mnt的权限全部开放。
[root@localhost ~]# chmod 777 /mnt/[root@localhost ~]#现在我们切换到user1用户,然后使用dd工具创建一个80K的文件。
[root@localhost ~]# su - user1[user1@localhost ~]$[user1@localhost ~]$ cd /mnt/[user1@localhost mnt]$ lsaquota.group er lost+found[user1@localhost mnt]$ dd if=/dev/zero of=file bs=1K count=80sda8: warning, user block quota exceeded.80+0 records in80+0 records out81920 bytes (82 kB) copied, 0.00277285 seconds, 29.5 MB/s[user1@localhost mnt]$ lsaquota.group er file lost+found[user1@localhost mnt]$可以看到,我们通过dd工具创建了一个文件名为file的80K文件,但是给了我们一个警告,是因为user1达到了软限制,所以系统给了一个警告。
我们已经往/dev/sda8里面写入了80K的数据,如果我们在写入20K的数据,那么会发生什么事情呢。
[user1@localhost mnt]$[user1@localhost mnt]$ dd if=/dev/zero of=file1 bs=1k count=20sda8: write failed, user block limit reached.dd: writing `file1': Disk quota exceeded19+0 records in18+0 records out18432 bytes (18 kB) copied, 0.00365465 seconds, 5.0 MB/s[user1@localhost mnt]$ ll -htotal 126K-rw------- 1 root root 7.0K Feb 25 22:36 aquota.group-rw------- 1 root root 7.0K Feb 25 22:33 er-rw-rw-r-- 1 user1 user1 80K Feb 25 22:36 file-rw-rw-r-- 1 user1 user1 18K Feb 25 22:41 file1drwx------ 2 root root 12K Feb 25 21:39 lost+found[user1@localhost mnt]$可以看到,当在往/dev/sda8里面写入20K的数据的时候,系统提示我们写入失败,这就表明我们的磁盘配额就做成功了。
当然我们的file1这个文件最后还是被创建了。
但是这个文件只有18K,是不完整的。
刚才我们只是对用户做了磁盘配额,如果是组呢,组的磁盘配额配置和用户的配置方法一样,如果对组做限制,那么这个组里面的所有成员就都会受到磁盘配额的影响。
对组做磁盘配额#Edquota -g user1磁盘配额的基本配置到这里就基本完成了。
如果我们需要给多个用户做磁盘配额的话,一个一个指定又太麻烦了,有一个方法可以减轻负担。
# Edquota -p user1 user2这个就是将user1里面的磁盘配额策略复制给user2[root@localhost ~]#[root@localhost ~]# edquota user1Disk quotas for user user1 (uid 500):Filesystem blocks soft hard inodes soft hard/dev/sda8 100 80 100 2 0~这个就是user1磁盘配额的策略信息[root@localhost ~]# edquota -p user1 user2[root@localhost ~]# edquota user2Disk quotas for user user2 (uid 501):Filesystem blocks soft hard inodes soft hard/dev/sda8 0 80 100 0 0~可以看到,user1的策略信息就被自动的复制给user2了。