1、常用基础

防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl start firewalld

find / -size +100M -ls
netstat -tunlp

iptables -nL
netstat -tuln
cat /etc/hosts.allow
cat /etc/hosts.deny
top
free -g
cat /etc/passwd
cat /etc/hosts.allow
cat /etc/hosts.deny
iptables -nL
iptables-save > /etc/sysconfig/iptables.txt
iptables-restore < /etc/sysconfig/iptables.txt

find / -name log*
find /path/to/search -type f -size +1G

lscpu - 查看CPU的相关信息。
free -h - 查看内存的使用情况,-h 参数让信息更易读。
df -h - 查看磁盘的使用情况,-h 参数同样有助于阅读。
fdisk -l - 查看磁盘分区表。
uname -a - 查看内核版本和系统架构。
lspci - 查看PCI设备(如显卡、声卡)。
lsusb - 查看USB设备。
lsmod - 查看加载的内核模块。
env - 查看环境变量,可能包含有关系统配置的信息。
/proc/cpuinfo - 查看CPU的详细信息。
/proc/meminfo - 查看内存的详细信息。
/proc/swaps - 查看使用的交换空间。
echo $PATH
~/.bashrc
/etc/environment 或 /etc/profile

cat /etc/*release*
这个命令会显示发行版相关的信息,比如发行版名称、版本号等。
lsb_release -a
lsb_release 命令会打印 Linux 标准基础(LSB)兼容发行版的所有信息。
uname -a
uname 命令显示了内核相关的信息,包括内核名称、版本等。
hostnamectl
如果您使用的是 systemd,hostnamectl 命令也会显示操作系统信息。

2、Linux之常用的压缩解压缩命令

1 解压命令
tar -xvf filename.tar
tar -zxvf filename.tar.gz
tar -zxvf filename.tgz
tar -jxvf filename.tar.bz2
tar -xZvf filename.tar.Z
unrar e filename.rar # 解压到当前目录
unrar x filename.rar /path/to/extract
unzip filename.zip -d filepath
tar.xz文件解压:先xz -d xxx.tar.xz到tar,然后tar xvf xxx.tar
2 压缩命令
tar -zcvf filename.tar.gz filename
tar -zcvf filename.tgz filename
tar -jcvf filename.tar.bz2 filename
zip filename.zip filename
zip -r location.zip location
gzip -d filename.gz filename
rar -a filename.rar filename
3 多个压缩文件
如果遇到某个文件夹过大,需要将压缩文件跟个成 N 个指定大小的文件,便于邮件等方式传输,可以使用下边的方法

首先先压缩成一个大文件

tar -zcvf filename.tar.gz filenam
然后使用 split 指令进行切分

split -b 4000M -d -a 1 filename.tar.gz filename.tar.gz.
cat filename.tar.gz | split -b 4000M -d -a 1 filename.tar.gz.
3、查看机器满

1、查看下面这个目录看看是否是回收站满了
  du -sh ~/.local/share/Trash
2、查看/tmp目录和/var目录是否有大文件
3、查看下面这个目录加下面的文件是否很大
  /var/lib/mlocate/
  删除mlocate.db文件

  修改/etc/updatedb.conf

  在PRUNEPATHS 参数后面增加不需要进行locate的目录,修改完成后执行

  执行这个命令: updatedb

  mlocate.db 会明显减少。

4、查找一些大文件删除,例如日志,打包的压缩包等

下面这个命令查找大于100M的文件

  find 查找路径 -type f -size +1000000k | xargs ls -lat

4、Linux 查看端口占用情况

Linux 查看端口占用情况Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。

lsof
lsof(list open files)是一个列出当前系统打开文件的工具。

lsof 查看端口占用语法格式:

lsof -i:端口号
实例
查看服务器 8000 端口的占用情况:

# lsof -i:8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nodejs 26993 root 10u IPv4 37999514 0t0 TCP *:8000 (LISTEN)
可以看到 8000 端口已经被轻 nodejs 服务占用。

lsof -i 需要 root 用户的权限来执行,如下图:

lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件
netstat
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

netstat 查看端口占用语法格式:

netstat -tunlp | grep 端口号
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名
例如查看 8000 端口的情况,使用以下命令:
# netstat -tunlp | grep 8000
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 26993/nodejs
更多命令:

netstat -ntlp //查看当前所有tcp端口
netstat -ntulp | grep 80 //查看所有80端口使用情况
netstat -ntulp | grep 3306 //查看所有3306端口使用情况
kill
在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:

kill -9 PID
如上实例,我们看到 8000 端口对应的 PID 为 26993,使用以下命令杀死进程:

kill -9 26993

5、Linux 挂载磁盘详解及实操步骤

挂载磁盘是一项重要的操作,可以用于扩展存储空间,管理数据文件,备份和存储重要文件等。本文将详细介绍Linux系统中挂载磁盘的相关概念、步骤和实际操作指南。

一、磁盘分区
在Linux中,磁盘是通过分区来使用的。分区是将一个硬盘划分成几个逻辑部分来使用,在每个分区中可以存储不同的文件系统。因此,在挂载磁盘之前,我们需要先对磁盘进行分区。磁盘分区的过程可以通过命令行工具或图形界面工具来完成。

常用的磁盘分区工具有:

cfdisk:命令行工具,适用于创建主分区和扩展分区,支持MBR和GPT分区表。

fdisk:命令行工具,适用于创建主分区和扩展分区,支持MBR分区表。

gdisk:命令行工具,适用于创建主分区、扩展分区和逻辑分区,支持GPT分区表。

gparted:图形界面工具,适用于创建主分区、扩展分区和逻辑分区,支持MBR和GPT分区表。

分区的目的是将一个硬盘划分成多个逻辑部分,每个部分可以单独使用和管理。当然,分区并不是必需的,我们也可以直接将整个硬盘作为一个单一的分区进行挂载。

二、文件系统
在Linux中,文件系统是挂载磁盘的重要概念。文件系统是指一种组织数据的方式,可以帮助我们在磁盘上存储和管理文件。常见的Linux文件系统有ext2、ext3、ext4、XFS等。

在挂载磁盘之前,我们需要先在磁盘上创建文件系统。创建文件系统的命令为mkfs。

例如,若要创建一个ext4文件系统,只需要运行以下命令:

mkfs.ext4 /dev/sdb1
其中"/dev/sdb1"表示要创建文件系统的分区。

三、挂载磁盘
在Linux中,挂载磁盘的命令为mount。在挂载磁盘之前,我们需要保证文件系统已经被创建,同时需要知道要挂载的设备和挂载点。

设备指的是要挂载的物理磁盘或分区,它的标识通常以/dev开头,后面跟着分区信息(如/dev/sda1)。

挂载点指的是要将设备挂载到哪个目录下,这个目录称为挂载点。挂载点通常是一个空目录,它必须存在于文件系统中才能被用作挂载点。

例如,我们要将一个ext4文件系统挂载到/mnt/data这个目录下,只需要运行以下命令:

mount /dev/sdb1 /mnt/data
这里"/dev/sdb1"是要挂载的设备,"/mnt/data"是挂载点。

四、开机自动挂载
在Linux中,如果要让磁盘在每次开机后自动挂载到指定的目录下,我们需要将挂载信息写入/etc/fstab文件中。

/etc/fstab是Linux系统中用于存储文件系统挂载信息的文件。它包含了系统启动时需要挂载的所有文件系统的信息,以及挂载时使用的选项。

我们需要在/etc/fstab文件中添加一个新的行来描述我们要挂载的文件系统。每一行包含了如下信息:

设备:要挂载的设备名称,例如/dev/sdb1。

挂载点:要将设备挂载到哪个目录下。

文件系统类型:要挂载的文件系统类型,例如ext4。

挂载选项:用于控制挂载行为的选项,例如noatime(不更新访问时间)和defaults(使用默认选项)等。

挂载次序:系统应该以什么顺序挂载文件系统,例如0表示最先挂载。

例如,我们要将设备/dev/sdb1挂载到/mnt/data目录下,并使用ext4文件系统类型,同时在挂载时使用默认选项和noatime选项。我们需要在/etc/fstab文件中添加以下行:

/dev/sdb1 /mnt/data ext4 defaults,noatime 0 0
这样,在每次开机后,系统会自动挂载/dev/sdb1到/mnt/data目录下,并应用我们指定的挂载选项。

五、卸载磁盘
在Linux中,卸载磁盘的命令为umount。卸载磁盘之前,需要先检查磁盘上是否有进程在使用它。如果有,则需要先终止相应的进程,才能安全地卸载磁盘。

例如,若要卸载/mnt/data目录下的文件系统,只需要运行以下命令:

umount /mnt/data
六、实际操作
1. 使用lsblk命令查看新加入的磁盘信息
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 8G 0 part [SWAP]
└─sda3 8:3 0 21.5G 0 part /
sdb 8:16 0 100G 0 disk
从上述结果可以看出,系统中新加了一个磁盘设备/dev/sdb。

2. 使用fdisk或者cfdisk分区新磁盘,并将分区标记为Linux文件系统类型(83)
例如使用fdisk命令:

$ sudo fdisk /dev/sdb

Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199):

Created a new partition 1 of type 'Linux' and of size 100 GiB.

Command (m for help): t
Selected partition 1
Partition type (type L to list all types): 83

Changed type of partition 'Linux' to 'Linux'.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

3. 格式化新分区,使用mkfs命令
$ sudo mkfs -t ext4 /dev/sdb1
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 26214400 4k blocks and 6553600 inodes
Filesystem UUID: 882b7297-1258-4e23-9d03-cf20654455b9
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done
4. 创建挂载目录,使用mkdir命令
$ sudo mkdir /mnt/data
5. 挂载分区,使用mount命令
$ sudo mount /dev/sdb1 /mnt/data
6. 验证挂载是否成功,使用df -h命令查看所有文件系统的储存器使用情况:
$ sudo df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 793M 1.7M 792M 1% /run
/dev/sda3 22G 1.5G 19G 8% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 511M 4.0K 511M 1% /boot/efi
tmpfs 793M 0 793M 0% /run/user/1000
/dev/sdb1 99G 72M 94G 1% /mnt/data
从上述结果可以看出,新分区已经被成功挂载到/mnt/data目录下。

7. 添加自动挂载,编辑/etc/fstab文件,添加以下内容:
$ sudo su
$ echo '/dev/sdb1 /mnt/data ext4 defaults 0 2' >> /etc/fstab
七、总结
挂载磁盘是Linux系统中一个基本的操作,它可以帮助我们扩展存储空间,管理数据文件,备份和存储重要文件等。在挂载磁盘之前,我们需要先对磁盘进行分区,并且在分区上创建文件系统。然后,我们需要使用mount命令将设备挂载到指定的目录下,并在必要时使用/etc/fstab文件配置开机自动挂载。最后,在卸载磁盘之前,需要先检查是否有进程在使用磁盘,并终止相应的进程。

----------------------------------------

lsblk

df -hT

二、硬盘分区
2.1创建主分区
[root@mysql ~]# fdisk /dev/sdf
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0xade929fa 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认 1):
第一个扇区 (2048-6291455, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-6291455, 默认 6291455): +1G

创建了一个新分区 1,类型为“Linux”,大小为 1 GiB。

命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。

2.2创建扩展分区
[root@mysql ~]# fdisk /dev/sdf

欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):n
分区类型
p 主分区 (1个主分区,0个扩展分区,3空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):e
分区号 (2-4, 默认 2): 2
第一个扇区 (2099200-6291455, 默认 2099200):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2099200-6291455, 默认 6291455):

创建了一个新分区 2,类型为“Extended”,大小为 2 GiB。

命令(输入 m 获取帮助):n
所有主分区的空间都在使用中。
添加逻辑分区 5
第一个扇区 (2101248-6291455, 默认 2101248):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2101248-6291455, 默认 6291455): +1G

创建了一个新分区 5,类型为“Linux”,大小为 1 GiB。

命令(输入 m 获取帮助):p
Disk /dev/sdf:3 GiB,3221225472 字节,6291456 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xade929fa

设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdf1 2048 2099199 2097152 1G 83 Linux
/dev/sdf2 2099200 6291455 4192256 2G 5 扩展
/dev/sdf5 2101248 4198399 2097152 1G 83 Linux

[root@mysql ~]# partprobe /dev/sdf //更新硬盘分区信息

三、格式化硬盘
3.1 mkfs
[root@mysql ~]# mkfs.ext4 /dev/sdf1
mke2fs 1.45.6 (20-Mar-2020)
创建含有 262144 个块(每块 4k)和 65536 个inode的文件系统
文件系统UUID:102cb0d3-e73d-4ced-bd9d-b342486ee626
超级块的备份存储于下列块:
32768, 98304, 163840, 229376

正在分配组表: 完成
正在写入inode表: 完成
创建日志(8192 个块)完成
写入超级块和文件系统账户统计信息: 已完成

3.2挂载硬盘
[root@mysql ~]# mkdir /mnt/disk1
[root@mysql ~]# mount -t ext4 /dev/sdf1 /mnt/disk1/
[root@mysql ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 17M 1.8G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 64G 2.5G 62G 4% /
/dev/sda1 xfs 1014M 193M 822M 19% /boot
/dev/mapper/cl-home xfs 32G 255M 31G 1% /home
tmpfs tmpfs 371M 0 371M 0% /run/user/0
/dev/sdf1 ext4 976M 2.6M 907M 1% /mnt/disk1

3.3卸载硬盘
[root@mysql ~]# umount /mnt/disk1/
root@mysql ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 17M 1.8G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 64G 2.5G 62G 4% /
/dev/sda1 xfs 1014M 193M 822M 19% /boot
/dev/mapper/cl-home xfs 32G 255M 31G 1% /home
tmpfs tmpfs 371M 0 371M 0% /run/user/0

四swap分区管理
4.1swap分区大小查看
[root@mysql ~]# free -m
total used free shared buff/cache available
Mem: 3709 650 2681 16 377 2813
Swap: 4031 0 4031

4.2创建swap分区
[root@mysql ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─cl-root 253:0 0 63.9G 0 lvm /
├─cl-swap 253:1 0 4G 0 lvm [SWAP]
└─cl-home 253:2 0 31.2G 0 lvm /home
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sdf 8:80 0 3G 0 disk
├─sdf1 8:81 0 1G 0 part
├─sdf2 8:82 0 1K 0 part
└─sdf5 8:85 0 1G 0 part
sdg 8:96 0 3G 0 disk
sr0 11:0 1 8.6G 0 rom

[root@mysql ~]# fdisk /dev/sdg

欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x2e5c8dd1 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认 1):
第一个扇区 (2048-6291455, 默认 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-6291455, 默认 6291455):

创建了一个新分区 1,类型为“Linux”,大小为 3 GiB。

命令(输入 m 获取帮助):p
Disk /dev/sdg:3 GiB,3221225472 字节,6291456 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x2e5c8dd1

设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdg1 2048 6291455 6289408 3G 83 Linux

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”。

命令(输入 m 获取帮助):p
Disk /dev/sdg:3 GiB,3221225472 字节,6291456 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x2e5c8dd1

设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdg1 2048 6291455 6289408 3G 82 Linux swap / Solaris

命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。

备注:新版本ID不用改也可以。改了好,不改后期看的话容易蒙

[root@mysql ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─cl-root 253:0 0 63.9G 0 lvm /
├─cl-swap 253:1 0 4G 0 lvm [SWAP]
└─cl-home 253:2 0 31.2G 0 lvm /home
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sdf 8:80 0 3G 0 disk
├─sdf1 8:81 0 1G 0 part
├─sdf2 8:82 0 1K 0 part
└─sdf5 8:85 0 1G 0 part
sdg 8:96 0 3G 0 disk
└─sdg1 8:97 0 3G 0 part
sr0 11:0 1 8.6G 0 rom

4.3格式化swap分区
[root@mysql ~]# mkswap /dev/sdg1
正在设置交换空间版本 1,大小 = 3 GiB (3220172800 个字节)
无标签,UUID=553a85b1-7f97-4275-b974-82d3e9dbef5bls

4.4挂载swap分区
[root@mysql ~]# swapon /dev/sdg1

[root@mysql ~]# free -m
total used free shared buff/cache available
Mem: 3709 652 2679 16 377 2811
Swap: 7102 0 7102
[root@mysql ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─cl-root 253:0 0 63.9G 0 lvm /
├─cl-swap 253:1 0 4G 0 lvm [SWAP]
└─cl-home 253:2 0 31.2G 0 lvm /home
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sdf 8:80 0 3G 0 disk
├─sdf1 8:81 0 1G 0 part
├─sdf2 8:82 0 1K 0 part
└─sdf5 8:85 0 1G 0 part
sdg 8:96 0 3G 0 disk
└─sdg1 8:97 0 3G 0 part [SWAP]
sr0 11:0 1 8.6G 0 rom

4.5卸载swap分区
[root@mysql ~]# swapoff /dev/sdg1
[root@mysql ~]# free -m
total used free shared buff/cache available
Mem: 3709 650 2681 16 377 2813
Swap: 4031 0 4031

五、逻辑卷管理
5.1查看硬盘信息
[root@mysql ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─cl-root 253:0 0 63.9G 0 lvm /
├─cl-swap 253:1 0 4G 0 lvm [SWAP]
└─cl-home 253:2 0 31.2G 0 lvm /home
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sdf 8:80 0 3G 0 disk
sdg 8:96 0 3G 0 disk
sr0 11:0 1 8.6G 0 rom
[root@mysql ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 17M 1.8G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 64G 2.5G 62G 4% /
/dev/sda1 xfs 1014M 193M 822M 19% /boot
/dev/mapper/cl-home xfs 32G 255M 31G 1% /home
tmpfs tmpfs 371M 0 371M 0% /run/user/0

5.2创建物理卷
[root@mysql ~]# pvcreate /dev/sdf
Physical volume “/dev/sdf” successfully created.

5.3创建卷组
[root@mysql ~]# vgcreate vg1 /dev/sdf
Volume group “vg1” successfully created

5.4创建逻辑卷
[root@mysql ~]# lvcreate -L +2G -n lv1 /dev/vg1
Logical volume “lv1” created.

5.5格式化逻辑卷
[root@mysql ~]# mkfs.ext4 /dev/vg1/lv1
mke2fs 1.45.6 (20-Mar-2020)
创建含有 524288 个块(每块 4k)和 131072 个inode的文件系统
文件系统UUID:e915c955-e830-4710-8cf3-ed03e5663025
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912

正在分配组表: 完成
正在写入inode表: 完成
创建日志(16384 个块)完成
写入超级块和文件系统账户统计信息: 已完成

5.6挂载逻辑卷
[root@mysql ~]# mkdir /mnt/lv1
[root@mysql ~]# mount -t ext4 /dev/vg1/lv1 /mnt/lv1/
[root@mysql ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 17M 1.8G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 64G 2.5G 62G 4% /
/dev/sda1 xfs 1014M 193M 822M 19% /boot
/dev/mapper/cl-home xfs 32G 255M 31G 1% /home
tmpfs tmpfs 371M 0 371M 0% /run/user/0
/dev/mapper/vg1-lv1 ext4 2.0G 6.0M 1.8G 1% /mnt/lv1

5.7卷组扩容
[root@mysql ~]# pvcreate /dev/sdg
Physical volume “/dev/sdg” successfully created.
[root@mysql ~]# vgextend vg1 /dev/sdg
Volume group “vg1” successfully extended
[root@mysql ~]# vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 3 0 wz–n- <99.00g 0
vg1 2 1 0 wz–n- 5.99g 3.99g

5.8逻辑卷扩容
root@mysql ~]# lvextend -L +3G /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 2.00 GiB (512 extents) to 5.00 GiB (1280 extents).
Logical volume vg1/lv1 successfully resized.
[root@mysql ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home cl -wi-ao---- 31.18g
root cl -wi-ao---- <63.88g
swap cl -wi-ao---- ️.94g
lv1 vg1 -wi-ao---- 5.00g

5.9查看扩容后的空间(resize2fs /dev/vg1/lv1)
[root@mysql ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 17M 1.8G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 64G 2.5G 62G 4% /
/dev/sda1 xfs 1014M 193M 822M 19% /boot
/dev/mapper/cl-home xfs 32G 255M 31G 1% /home
tmpfs tmpfs 371M 0 371M 0% /run/user/0
/dev/mapper/vg1-lv1 ext4 2.0G 6.0M 1.8G 1% /mnt/lv1

[root@mysql ~]# resize2fs /dev/vg1/lv1
resize2fs 1.45.6 (20-Mar-2020)
/dev/vg1/lv1 上的文件系统已被挂载于 /mnt/lv1;需要进行在线调整大小

old_desc_blocks = 1, new_desc_blocks = 1
/dev/vg1/lv1 上的文件系统现在为 1310720 个块(每块 4k)。

[root@mysql ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 17M 1.8G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 64G 2.5G 62G 4% /
/dev/sda1 xfs 1014M 193M 822M 19% /boot
/dev/mapper/cl-home xfs 32G 255M 31G 1% /home
tmpfs tmpfs 371M 0 371M 0% /run/user/0
/dev/mapper/vg1-lv1 ext4 4.9G 8.0M 4.7G 1% /mnt/lv1

[root@mysql ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─cl-root 253:0 0 63.9G 0 lvm /
├─cl-swap 253:1 0 4G 0 lvm [SWAP]
└─cl-home 253:2 0 31.2G 0 lvm /home
sdb 8:16 0 2G 0 disk
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sdf 8:80 0 3G 0 disk
└─vg1-lv1 253:3 0 5G 0 lvm /mnt/lv1
sdg 8:96 0 3G 0 disk
└─vg1-lv1 253:3 0 5G 0 lvm /mnt/lv1
sr0 11:0 1 8.6G 0 rom

六、软raid
6.1创建raid
[root@mysql ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{b,c,d,e}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

备注:-C创建RAID
/dev/md0 第一个raid设备
-l5 RAID5
-n RAID成员数量
-x 热备磁盘数量 (不需要热备,不用写)
[root@mysql ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─cl-root 253:0 0 63.9G 0 lvm /
├─cl-swap 253:1 0 4G 0 lvm [SWAP]
└─cl-home 253:2 0 31.2G 0 lvm /home
sdb 8:16 0 2G 0 disk
└─md0 9:0 0 4G 0 raid5
sdc 8:32 0 2G 0 disk
└─md0 9:0 0 4G 0 raid5
sdd 8:48 0 2G 0 disk
└─md0 9:0 0 4G 0 raid5
sde 8:64 0 2G 0 disk
└─md0 9:0 0 4G 0 raid5
sdf 8:80 0 3G 0 disk
└─vg1-lv1 253:3 0 5G 0 lvm /mnt/lv1
sdg 8:96 0 3G 0 disk
└─vg1-lv1 253:3 0 5G 0 lvm /mnt/lv1
sr0 11:0 1 8.6G 0 rom

6.2格式化raid盘
[root@mysql ~]# mkfs.ext4 /dev/md0
mke2fs 1.45.6 (20-Mar-2020)
创建含有 1047040 个块(每块 4k)和 262144 个inode的文件系统
文件系统UUID:8a7a23b6-ea08-4b05-a539-a67b4d4360e8
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736

正在分配组表: 完成
正在写入inode表: 完成
创建日志(16384 个块)完成
写入超级块和文件系统账户统计信息: 已完成

6.3挂载raid盘
[root@mysql ~]# mkdir /mnt/raid5
[root@mysql ~]# mount -t ext4 /dev/md0 /mnt/raid5/
[root@mysql ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 17M 1.8G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 64G 2.5G 62G 4% /
/dev/sda1 xfs 1014M 193M 822M 19% /boot
/dev/mapper/cl-home xfs 32G 255M 31G 1% /home
tmpfs tmpfs 371M 0 371M 0% /run/user/0
/dev/mapper/vg1-lv1 ext4 4.9G 8.0M 4.7G 1% /mnt/lv1
/dev/md0 ext4 3.9G 16M 3.7G 1% /mnt/raid5

6.4查看raid详细信息
[root@mysql ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Jan 1 09:07:43 2022
Raid Level : raid5
Array Size : 4188160 (3.99 GiB 4.29 GB)
Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent

----------------------------------------

6、

linux-杂项的更多相关文章

  1. linux杂项

    重装后激活root帐号并设置密码 sudo passwd root sudo: netstat:找不到命令 安装net-tools:sudo apt-get install net-tools Com ...

  2. linux driver ------ platform模型,通过杂项设备(主设备号是10)注册设备节点

    注册完设备和驱动之后,就需要注册设备节点 Linux杂项设备出现的意义在于:有很多简单的外围字符设备,它们功能相对简单,一个设备占用一个主设备号对于内核资源来说太浪费.所以对于这些简单的字符设备它们共 ...

  3. 【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和"普通变量"之完全解读

      2015-05-08 00:15 3896人阅读 评论(10) 收藏 举报 本文章已收录于:   分类: 软件开发进阶(419) 作者同类文章X Unix/Linux杂项(118) 作者同类文章X ...

  4. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  5. grub2 详解

    grub2详解(翻译和整理官方手册)   分类: Linux 基础篇,Linux 杂项   本文原创地址在博客园:https://www.cnblogs.com/f-ck-need-u/archive ...

  6. linux驱动初探之杂项设备(控制两个GPIO口)

    关键字:linux驱动.杂项设备.GPIO 此驱动程序控制了外接的两个二极管,二极管是低电平有效. 上一篇博客中已经介绍了linux驱动程序的编写流程,这篇博客算是前一篇的提高篇,也是下一篇博客(JN ...

  7. Linux驱动设计——字符杂项设备

    杂项设备 linux里面的misc杂项设备是主设备号为10的驱动设备,misc设备其实也就是特殊的字符设备,可自动生成设备节点. 定义头文件<linux/miscdevice.h>   杂 ...

  8. 9、Linux驱动的杂项设备

    杂项设备,是字符设备中的特殊,它的主设备号,是 10,不同的杂项设备,通过次设备号进行区分. 1.注册与注销 int misc_register(struct miscdevice * misc) 完 ...

  9. Linux 进程IO杂项

    Linux 进程IO杂项 本文结合一个 pwn 例题,在分析例题的过程中穿插介绍相关知识. 例题来源:PWNABLE.KR 网站,Toddler's Bottle 小节,习题 input. 例题内容: ...

  10. Linux 驱动框架---cdev字符设备驱动和misc杂项设备驱动

    字符设备 Linux中设备常见分类是字符设备,块设备.网络设备,其中字符设备也是Linux驱动中最常用的设备类型.因此开发Linux设备驱动肯定是要先学习一下字符设备的抽象的.在内核中使用struct ...

随机推荐

  1. PME算法简单Python实现

    技术背景 在前面的两篇博客中,我们分别介绍了Ewald算法求解静电势能和基于格点拉格朗日插值法的PME算法.在多种计算优化算法(Ewald求和.快速傅里叶变换.格点拉格朗日插值.截断近似)的加持下,使 ...

  2. 经典C语言题目——打印罗汉塔图形

    打印如下图形: ++++1 +++22 ++333 +4444 55555 点击查看代码 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> ...

  3. 【Spring】IOC核心源码学习(二):容器初始化过程

    接上文 啃啃老菜: Spring IOC核心源码学习(一) ,本文将以 ClassPathXmlApplicationContext 这个容器的实现作为基础,学习容器的初始化过程. ClassPath ...

  4. Java深度历险(一)——Java字节代码的操纵

    [编者按]Java作为业界应用最为广泛的语言之一,深得众多软件厂商和开发者的推崇,更是被包括Oracle在内的众多JCP成员积极地推动发展.但是对于Java语言的深度理解和运用,毕竟是很少会有人涉及的 ...

  5. Git之清除历史记录操作

    近期公司需要将之前代码仓库中的提交记录都清理,所以操作一下,记录一下步骤: 安全考虑: 有时候在提交代码时,不小心提交了敏感数据,如账号密码什么的,这样在历史记录中就可以查看到,这样很不安全,所以就需 ...

  6. JDBC【4】-- jdbc预编译与拼接sql对比

    在jdbc中,有三种方式执行sql,分别是使用Statement(sql拼接),PreparedStatement(预编译),还有一种CallableStatement(存储过程),在这里我就不介绍C ...

  7. Linux C/C++编程中的多线程编程基本概念

    8.2.1  操作系统和多线程 要在应用程序中实现多线程,必须有操作系统的支持.Linux 32位或64位操作系统对应用程序提供了多线程的支持,所以Windows NT/2000/XP/7/8/10是 ...

  8. docker 批量删除镜像

    删除虚悬镜像 列出REPOSITORY和TAG均为<none>的虚悬镜像: $ docker images --filter dangling=true REPOSITORY TAG IM ...

  9. Gitee三方登录_Python (超详细)

    第三方登录是一种常见的身份验证机制,允许用户使用他们在其他平台(如社交媒体.电子邮件服务或开发平台)的账号来登录你的应用或网站,而不需要创建新的用户名和密码.这种方式不仅简化了用户的登录过程,还提高了 ...

  10. 【Python】【爬虫】【爬狼】003_获取搜索结果的页数

    # 获取搜索内容的页数 需要的包 import urllib.request # 获取网页源码 import re # 正则表达式,进行文字匹配 from bs4 import BeautifulSo ...