磁盘配额概念
磁盘配额( Quota )
Linux是一个多用户的操作系统,在生产环境中,会发生多个用户共同使
用一个磁盘的情况,会造成Linux根分区的磁盘空间耗尽,导致Linux系统无
法建立新的文件,从而出现服务程序崩溃、系统无法启动等故障现象。
为了避免这种情况,解决方法就是,通过磁盘配额( Disk Quota )对用
户在指定文件系统中使用磁盘空间、文件数量进行限制,防止用户占用大量
的磁盘空间,从而保持系统存储空间可以稳定使用。
磁盘配额的限制
限制条件
磁盘配额的对象:磁盘分区,并且要求Linux内核支持磁盘配额技术
>磁盘配额限制只能针对分区,而不能针对某个目录,换句话说,磁盘配额仅
能针对文件系统进行限制。举个例子,如果你的/dev/sdb1是挂载在
/mnt/sdb1底下,那么,在/mnt/sdb1下的所有目录都会受到磁盘配额的
限制;
磁盘配额 只对一般用户有效, 对管理员( root )来说是没有 任何作用限制的
磁盘配额中的常见概念
用户配额和组配额
用户配额是指针对用户个人的配额,而组配额是指针对整个用户组的配
额。
磁盘容量限制和文件个数限制
block数量:用于限制用户可用的磁盘存储容量
inode数量:用于限制用户可以创建文件或上传文件的数量
磁盘配额中的常见概念
软限制和硬限制
soft (软限制) : 最低限制容量,可以被超过,但会有警告信息,超过
的部分会保存到宽限时期到期。一般 是硬限制的80%。
hard (硬限制) : 绝对不能被超过限制。达到hard时,系统会禁止继续
增加新的文件。
宽限时间
如果用户的空间占用数处于软限制和硬限制之间, 那么系统会在用户登
录时警告用户磁盘将满,但是这个警告不会一直进行,而是有时间限制的,
这个时间就是宽限时间,默认是7天。当宽限时间到期,系统将自动清除
磁盘配额使用的前提条件
前提条件
➢内核必须支持磁盘配额。Centos 7.x版本的Linux默认支持磁盘配额,
不需要做任何修改;
➢系统中必须安装了Quota工具;
➢要支持磁盘配额的分区必须开启磁盘配额功能。
磁盘挂载与卸载
1文件系统的挂载。
2.手动挂载mount命令
3.特殊设备的挂载+
4.自动挂载/et/fstab文件,
5.swap分区+
挂载概念
建立了文件系统之后,还需要将文件系统连接到
Linux目录树的某个位置才能使用,这被称为"挂载”
文件系统挂载的原因
文件系统所挂载到的目录称为挂载点,该目录为进
入该文件系统的入口。除了磁盘分区之外,其他各种存
储设备也需要进行挂载才能使用。
文件系统挂载的注意事项
1.-个文件系统不应该被重复挂载在不同挂载点(目录)中。
2.个目录不应该重复挂载多个文件系统。
3.作为挂载点的目录通常应为空目录。
磁盘挂载与卸载
手动挂载mount命令
命令名称mount
命令作用能够将Linux系统外的某个分区挂载到目录。
命令格式 mount [-t文件系统] [-o挂载选项] 设备名称 挂载点选项
mount命令的基本用法
1.查看当前系统已经过挂载的所有分区,分区系统类型等。
2.将/dev/sdb1挂载到目录/mnt/u01下。
3.将/dev/sdb1重新挂载为只读状态
4.将/dev/sdb1以UUID形式挂载到目录/mnt/u01下。
5.将/dev/sdb1,通过卷标挂载到目录/mnt/u01下。
常用外部设备挂载
光盘 2.U 盘 3.移动硬盘
光盘的挂载和使用
光盘的设备名
v在CentOS7中, SCSI/ATA/SATA接口的光驱设备使用设备名/dev/sr0
表示。
V Linux系统通过链接文件为光驱赋予的常用的文件名是/dev/cdrom
光盘挂载和使用
1.将光盘挂载到/media/cdrom目录----连接。
2.将光盘挂载到/media/cdrom目录下----- -实现挂载。
mkdir /media/ cdrom#创建一一个挂载点目录
mount /dev/sr0 /media/cdrom #将光盘挂载到该目录
3.卸载/media/cdrom目录下挂载的光盘。
卸载命令格式:
umount
光驱设备名或挂载点目录
umount /media/cdrom
U盘挂载和使用
U盘挂载使用流程
1.以root用户登陆,先加载USB模块,用fdisk -1查看U盘设备名称
2.在目录/mnt下建立挂载目录
3.载入u盘,挂载U盘
4.不再使用u盘,应卸载后移除设备
U盘挂载和使用
虚拟机识别U盘
将U盘/dev/sdc1挂载到目录/mnt/usb下。
卸载U盘设备。
自动挂载的作用
某些时候当Linux系统下划分了新的分区后,需要
将这些分区设置为开机自动挂载,否则, Linux是无法
使用新建的分区的。
/etc/fstab文件负责配置Linux开机时自动挂载的
分区。
自动挂载的作用
某些时候当Linux系统下划分了新的分区后,需要
将这些分区设置为开机自动挂载,否则, Linux是无法
使用新建的分区的。
/etc/fstab文件负责配置Linux开机时自动挂载的
分区。
swap分区介绍
swap分区通常被称为交换分区,这是一块特殊的
硬盘空间,即当实际内存不够用的时候,操作系统会
从内存中取出一部分暂时不用的数据,放在交换分区
中,从而为当前运行的程序腾出足够的内存空间。
也即为,当内存不够用时,我们使用swap分区
来临时顶替。
swap分区的特点
优点:通过操作系统的调度,应用程序实际可以使用的内存空间将
远远超过系统的物理内存。
缺点:频繁地读写硬盘,会显著降低操作系统的运行速率。
■ swap0 0的0小:通常设置 为内存0小的1.5-20。
■可用的分区的类型:主分区或者逻辑分区。
建立新的swap00的步0
■分区
使用fdisk命令,创建swap0 0
■ swap 0格式0
使用命令mkswap格式0 00 [root@localhost ~]# mkswap /dev/sdb1
■swap00挂载
使用命令swapon挂载swap [root@localhost ~]# swapon /dev/sdb1
使用命令free -h查看swap信息[root@localhost ~]# free -h
1swap0卸载
使用命令swapoff卸载swap [root@localhost ~ ]# swapoff /dev/sdb1
一、存储设备的挂载和卸载
存储设备的挂载和卸载常用操作命令:fdisk -l、df、du、mount、umount。
fdisk -l 命令
1.作用
查看所有硬盘的分区信息,包括没有挂上的分区和USB设备,挂载时需要用这条命令来查看分区或USB设备的名称,比如挂载U盘时。
注意:Linux中既然硬件是以文件形式存在,则也可以ls -l /dev/sda*查看第一块硬盘的分区信息
df 命令
1.作用
统计磁盘空间或文件系统使用情况,显示磁盘分区上的可使用的磁盘空间,默认显示单位为KB
2.格式
df [option]
3.[option]主要参数
4.应用举例
查看全部文件系统:
#df -a
du 命令
1.作用
查看文件或目录的磁盘使用的空间,和df命令有一些区别。注意:①du后若不加目录名或文件名,表示只显示当前目录下面的子目录的目录大小和当前目录的总的大小②可查看多个文件或目录用空格符隔开
2.格式
du [option] 目录名或文件名
3.[option]主要参数
4.应用举例
以易读形式查看ahao目录的大小并忽略子目录:
#du -h -S ahao
以易读形式查看haha1文件和haha2文件的大小:
#du -h haha1 haha2
mount 命令
1.作用
①此命令后面不加任何参数表示查看已挂载的所有文件系统
②加参数表示将存储设备挂载到Linux的一个目录下,从而将分区和该目录联系起来,因此我们只要访问这个目录,就相当于访问该存储设备了。
注意:当一个目录之前有文件,设备挂载到这个目录后,目录不显示之前的文件
2.格式
mount [option] 设备名挂载点(必须已存在)
3.[option]主要参数
4.应用举例
将FAT32文件系统的分区/dev/sda5挂载到/ahao目录下:
#mount -t auto /dev/sda5 /ahao
将U盘/dev/sdb1挂载到/ahao目录下:
#mount -t auto /dev/sdb1 /ahao
将光盘镜像文件xxx.iso的挂接到/peter目录下:
#mount -t iso9660 xxx.iso /peter -o loop
umount 命令
1.作用
卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,当一个设备多个挂载点时容易产生混乱
2.格式
3.应用举例
在使用umount命令卸载文件系统时,必须保证文件系统不能处于busy状态,使文件系统处于busy状态的情况有:文件系统中有打开的文件,某个进程的工作目录在此系统中,文件系统的缓存文件正在被使用等。最常见的错误是在挂载点目录下进行卸载操作。
卸载/ahao挂载点对应的挂载:
#umount /ahao
二、自动挂载
自动挂载实现原理
实现开机自动挂载只需修改/etc/fstab配置文件即可,可用vi编辑器修改或图形界面下用gedit命令修改
/etc/fstab配置文件解读
打开/etc/fstab配置文件
⑴第一列:①设备名/dev/sda1或②卷标label或③设备UUID(红帽6)(查看设备的UUID blkid/dev/sda1)
⑵第二列:挂载点
⑶第三列:文件系统类型
⑷第四列:挂载选项,通常使用defaults就可以
⑸第五列:是否进行备份,1表示备份,0表示不备份
⑹第六列:是否检查文件系统,1表示检验,0表示不检验
应用举例
实现插U盘自动挂载U盘到/usb目录,不备份且不检查文件系统:
/dev/sdb1 /usb auto defaults 0 0
将上述命令添加到/etc/fstab配置文件中即可完成插U盘自动挂载,为了避免可能的错误,使用mount -a 命令来检验编辑的内容是否有错
三、磁盘分区
用fdisk在Linux中进行分区的时候,最常用的参数分别是 d、l、m、n、p、q、t、w等。
注意:
①主分区和扩展分区的磁盘号位1-4,也就是说最多有4个主分区或者扩展分区,逻辑分区开始的磁盘号为5
②如果硬盘上有扩展分区,就只能增加逻辑分区,不能增加扩展分区了
fdisk 命令
1.作用
对硬盘进行分区,采用传统的问答式界面
2.格式
1)fidsk 磁盘名
2)[option]
第一步:fidsk /dev/sdb :选择要进行操作的磁盘,这里是对sdb移动磁盘进行操作
第二步:输入[option]进行操作
3.[option]主要参数
分区过程描述
①通过 p 参数来查看出硬盘分区表信息。根据信息确定将来的分区
②通过 d 参数一个个删除存在的硬盘分区,如果想完全改变硬盘的分区格式
③通过 n 参数来增加新的分区
1)选择新建的分区类型。p为主分区,e为扩展分区(当有扩展分区存在时这里的e会 变成l,即逻辑分区)
2)设置分区号。主分区或扩展分区为1-4,逻辑分区为5开始
3)设置分区起始位置。(一般回车默认就好)
4)设置分区结束位置。(100单位为扇区,+100M单位为M,+100K单位为K)
④通过p参数确认分区建立成功
⑤通过参数w或q退出(w为保存并退出,q为不保存退出)
注意:在增加分区的时候,其类型都是默认的 Linux Native,如果需要把其中的某些分区改变为其它类型,可以通过命令 t来改变,当键入“t”改变分区类型的时候,系统会提示要改变哪个分区,改变为什么类型(键入l查看系统所支持的分区类型及其对应的分区类型号)。
四、磁盘格式化
对硬盘分区之后,需要对分区进行格式化才能使用,格式化分区的主要目的是在分区中创建文件系统,文件系统是OS用作明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。
mkfs 命令
1.作用
格式化分区,在分区上创建文件系统
2.格式
①mkfs[options] 设备名
②mkfs.<文件系统类型> [-v] 设备名
3.[option]主要参数
4.应用举例
格式化/dev/sdb1分区,并显示具体信息:
#mkfs -V -t vfat /dev/sdb1
#mkfs.vfat -v /dev/sdb1
1.可以删除成功,会报错,会提示删除失败没有该目录。
2.直接回车就显示回的输入命令阶段。没有删除。如果输入不是y也不是n,也是显示回到输入命令阶段。没有删除。
3.mkdir -p /home/1/2/3/4
4.会提示是否覆盖那个目录。输入完后显示不能用非目录覆盖目录
5.使用/搜索字符串。按向上或向下的键
6.-m find/var/-mtime -1 find/var/-mmin -60
7.find/ ect -mtime +365
8.head -n 20 /ect/man-db.conf/tail -n 10
9.不能跨越文件系统和不允许普通用户对目录做硬链接,占用空间大小。不能跨分区创建。
10.区别软链接新建一个文件。linux系统读取该文件的时候会自动读目标文件。而硬链接并不会新建一个文件,只是新建下一个inode,inode中储存的硬盘块儿与目标文件一致。
11.-表示纯文本,二进制文件。 d表示目录。 \表示链接 b块设备, c字符设备。
12.一个点表示当前目录。两个点表示上级目录。
13.cd-表示返回上一次工作的目录。
14.第2列表示文件数据,如果为3则说明这是一个目录文件,里面包含三个文件。
15.需要安装mlocate
16./bin/cp命令进行拷贝。
17.tail -f test
18.Is~
作业一
linux文件属性文件信息的组成:权限 文件数 所属用户 所属组 大小 创建时间 文件名
权限含义: r:读取 w:写入 x:执行 -:不具有权限
文件信息第一个字母含义: d:目录 l:链接文件 -:普通文件
r:4 w:2 x:1 -:0 例 rwxrwx---=770
文件权限设置chgrp命令
作用:更改文件或命令的所属用户组
格式:chgrp 选项 用户组(组名或组ID) 目录或文件名
选项 : -R递归处理指定目录下的所有文件及目录一并处理
-v显示指令执行过程
*groupadd group1 创建一个名为group1的用户组
cat /etc/group 查看用户组ID号
文件权限设置chown命令
作用: 更改文件或目录的拥有者,也可以更改所属用户组
格式:chown 选项 用户 文件或目录名
chown 选项 用户:用户组 文件或目录名 (同时修改)
选项: -R 递归处理指定目录下的所有文件
-v 显示指令执行过程
*useradd user1 创建新用户user1
cat /etc/passwd 查看用户的ID号
文件权限设置chmod命令
作用:面向所有者,修改文件或目录的权限
格式: chmod 选项 文件名
u:所属用户 +:增加权限
g:所属用户组 -:取消权限
o:其他用户 =:设定唯一权限
a:所有用户 -R:修改目录及子目录下所以文件权限
例:将/boot/grub2目录及子目录下的所有文件权限设置为可读可执行
# chmod u=rwx,g=rwx,o=rwx -R /boot/grub2
* u=rwx,g=rwx,o=rwx 等同于a=rwx等同于777
文件特殊权限设置
文件属性修改chattr
名称:chattr
作用:改变文件特殊属性
语法:chattr [+,-,=] 文件名
参数:-A:告诉系统不要修改对这个文件的最后访问时间
-S:一旦应用程序对这个文件进行了写操作,使系统立刻把修改结果写到磁盘
-a:系统只允许在这个之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件
-b:不更新文件或目录的最后存取时间
-c:将文件或目录压缩后存放
-d:当dump程序执行时,该文件不会被dump备份
-D:检查压缩文件中的错误
-i:系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程,只能修改目录之下的文件,不允许建立和删除文件
-s:彻底删除文件不可恢复,因为是从磁盘上删除,然后用0填充文件所在的区域
-u:当一个应用程序请求删除这个文件系统会保留其数据块,以便以后能够恢复删除这个文件用来防止意外删除文件或目录
-t:文件系统支持尾部合并
-x:可以直接访问压缩文件的内容
文件属性修改查看lsattr
名称:lsattr
作用:用于查看文件改变属性的查看
语法:lsattr [选项] 文件名
参数:-a:显示所有文件和目录,包括以“.”为名称开头字符的额外内建,现行目录“.”与上层目录“. .”
-d:显示目录名称而非其内容
-R:递归处理将指定目录下的所有文件及子目录一并处理
-v:显示文件或目录版本
-V:显示版本信息
特殊权限SUID
名称:SUID
作用:让普通用户以root用户角色运行只有root用户才能执行的二进制文件或命令只对文件有效
格式:chmod [选项] 文件名
参数:u+s :增加SUID权限
4xxx:增加SUID权限
u-s:取消SUID权限
特殊权限设置SGID权限
名称:SGID
作用:对文件和目录均有效,当作用于文件时,功能和SUID相同,当作用于目录时,任何用户在此目录下创建的文件都具有和目录所属组相同的权限
格式:chmod [选项] 文件名
参数:g+s:增加SGID权限
2xxx:增加SGID权限
g-s:取消SGID权限
特殊权限设置SBIT
名称:SBIT
作用:防止其他用户修改或删除本用户的目录和文件
格式:chmod [选项] 文件名
参数:o+t:增加SBIT权限
1xxx:增加SBIT权限
o-t:取消SBIT权限
文件特殊权限ACL
名称:ACL
作用:可以针对用户来设置权限
可以针对用户组来设置权限
子目录/目录继承父目录的权限
格式:setfacl [选项] 文件名
参数:-m:设定ACL权限
-x:删除指定的ACL权限
-b:删除所有的ACL权限
-d:设定默认的ACL权限,只对目录生效
-k:删除默认的ACL权限
-R:递归设定ACL权限