一、查找系统中文件

locate命令 根据文件名及其路径,在 mlocate 数据库中查找文件,并返回结果。

 #安装软件包
 yum install -y locate
 yum install -y httpd
 #更新mlocate数据库
 updatedb
 #查找httpd.conf文件
 locate httpd.conf
 /etc/httpd/conf/httpd.conf
 /usr/lib/tmpfiles.d/httpd.conf
 #指定只匹配路径的最后一级名称查找
 locate -b httpd
 #忽略大小写查找
 locate -i HTTPD
 #返回找到的数量
 locate -b -c httpd
 #路径包含http且后续跟着任意字符、最后以conf结尾的所有文件/目录
 locate -r 'http.*conf'

find命令 在本地文件系统中执行实时查找文件。

 #根据文件名查找
 find /etc/ -name passwd
 #从/etc目录(包括所有子目录)中,查找文件名包含passwd字符串的所有文件/目录
 find /etc/ -name '*passwd*'
 #忽略大小写查找
 find /etc/ -iname passwd
 #根据文件类型查找
 #查找普通文件
 find /etc/ -type f -name passwd
 #查找目录
 find /var/log -type d -name nginx
 #根据文件所属者查找
 #属于特定用户
 id zhangzhe
 uid=1000(zhangzhe) gid=1000(zhangzhe) groups=1000(zhangzhe)
 find / -user zhangzhe
 find / -uid 1000
 #属于特定组
 grep wheel /etc/group
 wheel:x:10:
 find / -group wheel
 find / -gid 10
 #查找系统中不属于任何用户或者不属于任何组的文件
 find / -nouser -o -nogroup
 #根据文件权限查找
 #准备文件
 mkdir lab;cd lab
 touch file-{1..3}
 chmod 764 file-1
 ls -l file*
 -rwxrw-r-- 1 root root 0 Jan  6 13:07 file-1
 -rw-r--r-- 1 root root 0 Jan  6 13:07 file-2
 -rw-r--r-- 1 root root 0 Jan  6 13:07 file-3
 #查找文件权限为764的文件
 find -perm 764 | xargs ls -l
 -rwxrw-r-- 1 root root 0 Jan  6 13:07 ./file-1
 chmod 777 file-1
 chmod 764 file-2
 chmod 760 file-3
 #查找文件权限至少为764的文件
 find -perm -764 | xargs ls -l
 -rwxrwxrwx 1 root root 0 Jan  6 13:07 ./file-1
 -rwxrw-r-- 1 root root 0 Jan  6 13:07 ./file-2
 #查找系统中具有suid权限的文件
 find / -perm -4000
 #查找系统中同时具有特殊权限的文件:suid(4000)和sgid(2000)
 find / -perm -6000 2>/dev/null |xargs ls -l
 chmod a=- file-1
 chmod uo=-,g=rwx file-2
 chmod ug=-,o=r file-3
 #查找文件在(主、组、其他)有任何一个权限符合的文件
 find -perm /764 -name 'file-*' | xargs ls -l
 ----rwx--- 1 root root 0 Jan  6 13:07 ./file-2
 -------r-- 1 root root 0 Jan  6 13:07 ./file-3
 #查找系统中具有特殊权限的文件:suid或者sgid或者sticky
 find / -perm /7000
 #查找系统中具有特殊权限的文件:suid或者sgid
 find / -perm /6000
 #根据文件大小查找
 #大小大于10G
 find -size +10G
 #大小小于10k
 find -size -10k
 #大小等于1M
 find -size 1M
 #注意:size会取整为1个单位,所以find -size 1M结果包含小于1M的文件
 #可以使用1024k取代1M
 find -size 1024k
 #根据文件时间查找
 #10分钟前访问(正好10分钟)
 find -amin 10
 #10分钟以前访问(大于10分钟)
 find -amin +10
 #10分钟以内访问(小于10分钟)
 find -amin -10
 #拓展
 # -exec  找到相应文件后,执行相应的命令
 find /etc/ -name passwd -exec echo haha \;
 haha
 haha
 #根据inode编号查找文件/目录
 find / -inum 67160130
 /etc/fstab
 #将inode编号为67160130的所有文件复制到当前目录
 mkdir findfiles
 find / -inum 67160130 -exec cp -a {} ./findfiles \;
 ls ./findfiles
 fstab

二、Linux硬盘分区管理

1.MBR分区方案

该方案支持最多4个主分区。

在 Linux系统上,管理员可以使用扩展分区和逻辑分区来创建最多 15个分区

逻辑分区是可以格式化(format),扩展分区是不可以格式化。

MBR 记录用4个字节(1byte=8bit)存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过 2 TiB

fdisk命令

 #查看分区
 fdisk -l /dev/sdb
 #使用
 fdisk /dev/sdb
 #输入p,打印分区表
 #输入q,退出管理页面
 #输入n,创建一个新分区
 #选择分区类型
 Partition type:
    p   primary (0 primary, 0 extended, 4 free)
    e   extended
 #直接回车,选择默认分区类型:primary
 Select (default p): `回车`
 Using default response p
 #直接回车,分区号,使用默认值1
 Partition number (1-4, default 1): `回车`
 #直接回车,设置分区起始位置为:默认值2048扇区,也就是1M位置
 First sector (2048-41943039, default 2048): `回车`
 Using default value 2048
 #设置分区结束位置,输入+2G,也就是起始位置之后2G
 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 
 41943039): `+2G`
 Partition 1 of type Linux and of size 2 GiB is set
 #输入w,保存更改并退出
 #输入q,不保存更改并退出
 #验证分区表变化
 lsblk /dev/sdb
 NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
 sdb               8:16   0    20G  0 disk 
 └─sdb1            8:17   0     5G  0 part
 #输入d,删除分区
 Command (m for help): d
 Partition number (1-4, default 4): 1
 Partition 1 is deleted

2.GPT分区方案

使用8个字节(1byte=8bit)存储分区的总扇区数,可支持最多18 ZiB(=264*512

Byte),即18亿太字节的分区和磁盘。

GPT分区方案最多可提供128个分区

GPT 提供分区表信息的冗余

gdisk命令

 #查看分区
 gdisk -l /dev/sdb
 #使用
 gdisk /dev/sdb
 #输入p,查看分区表
 #输入o,将磁盘的分区管理方案由MBR转换成GPT
 Command (? for help): o  
 This option deletes all partitions and creates a new protective MBR.
 Proceed? (Y/N): Y
 #输入w,保存更改并退出
 #输入q,不保存更改并退出
 #输入n,创建新分区
 #设置分区ID号
 Partition number (1-128, default 1): `回车`
 #设置分区起始位置
 First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: `回车`
 #设置分区结束位置
 Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: `+2G`
 Current type is 'Linux filesystem'
 #设置分区类型,输入回车,选择默认分区类型
 Hex code or GUID (L to show codes, Enter = 8300):  `回车`
 Changed type of partition to 'Linux filesystem'
 #输入c,修改分区ID为1的分区名
 Command (? for help): c
 Using 1
 #输入新名称
 Enter name: data01
 #输入i,查看分区详细信息
 Command (? for help): i
 Using 1
 Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux 
 filesystem)
 Partition unique GUID: 19AE5CDC-1AB2-4EBA-B9E2-AE9E7BF42653
 First sector: 2048 (at 1024.0 KiB)
 Last sector: 4196351 (at 2.0 GiB)
 Partition size: 4194304 sectors (2.0 GiB)
 Attribute flags: 0000000000000000
 Partition name: 'data01'
 #输入d,删除分区ID为1的分区
 Command (? for help): d
 Using 1

3.wipefs命令 清除磁盘分区表信息

 #清除未挂载磁盘的分区表
 wipefs -a /dev/sdb

4.parted工具

parted 工具既可以管理采用MBR分区方案的磁盘,又可以管理采用GPT分区方案的磁盘。

parted 命令 同时支持交互式操作非交互式操作(编写脚本)。

 #查看分区
 parted /dev/sdb unit MiB print
 #设置磁盘分区管理方案
 parted /dev/sdb mklabel gpt
 #创建分区
 parted /dev/sdb unit MiB mkpart data01 1 5121
 #删除分区
 parted /dev/sdb rm 1

5.文件系统持久化挂载

 #环境准备
 parted /dev/sdb mklabel gpt
 parted /dev/sdb unit MiB mkpart data01 1 2049
 mkfs.xfs /dev/sdb1
 #如果格式化时候,提示存在文件系统,则需要-f选项强制格式化
 mkfs.xfs -f /dev/sdb1
 #持久化挂载
 #查询/dev/sdb1分区关键信息
 blkid /dev/sdb1
 /dev/sdb1: UUID="f5c35f10-0274-45af-b044-73694989fe01" TYPE="xfs"
 PARTLABEL="data01" PARTUUID="432d7d79-1a08-4429-bf38-7ab1444a0ab9"
 mkdir /data01
 vim /etc/fstab
 #在最后一行增加一个条目
 UUID="f5c35f10-0274-45af-b044-73694989fe01" /data01 xfs defaults 0 0
 #挂载分区
 mount /dev/sdb1 /data01
 #验证
 df -h /data01
 Filesystem     Size Used Avail Use% Mounted on
 /dev/sdb1       2.0G   33M  2.0G   2% /data01
 #重启系统验证
 reboot
 df -h /data01
 Filesystem     Size Used Avail Use% Mounted on
 /dev/sdb1       2.0G   33M  2.0G   2% /data01
 #取消持久化挂载
 删除/etc/fstab中对应条目

三、Linux RAID 存储技术

RAID 主要分为:

RAID:所有功能均有操作系统和 CPU 来完成,没有独立的 RAID 控制 / 处理芯片和 I/O 处理芯片,效率最低。

RAID :配备了专门的 RAID 控制 / 处理芯片和 I/O 处理芯片以及阵列缓冲,不占用 CPU 资源,成本很高。

软硬混合 RAID:具备 RAID 控制 / 处理芯片,但缺乏 I/O 处理芯片,需要 CPU 和驱动程序来完成,性能和成本在软 RAID 和硬 RAID 之间。

RAID 0:条带

RAID 1:镜像

RAID 5:单奇偶效验

RAID 6:双奇偶效验

RAID 10:镜像+条带

RAID 50:单奇偶效验+条带

RAID 60:双奇偶效验+条带

RAID级别 最小磁盘数 容错能力 磁盘空间开销 读取速度 写入速度 硬件成本
RAID 0 2 0%
RAID 1 2 单个磁盘 50%
RAID 5 3 单个磁盘 1/N
RAID 6 4 两个磁盘 2/N
RAID 10 4 多个磁盘 50%
RAID 50 6 多个磁盘 1/N
RAID 60 8 多个磁盘 50%
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐