IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 奶奶常说LVM与磁盘配额,我学的都比你好,小笨蛋! -> 正文阅读

[系统运维]奶奶常说LVM与磁盘配额,我学的都比你好,小笨蛋!

引言

:当你在使用linux系统时也许会遇到这样的困境;如何精确评估和分配各个硬盘分区的容量,如果当初估计不准确,一旦系统分区不够用时可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,因此为满足应用系统的需要用LVM就能解决这类的磁盘管理问题。同时磁盘配额也是为了减小磁盘爆满的可能性用来限制一个或者多个用户可以使用的磁盘空间的功能。

一.LVM概述

1.逻辑卷管理

能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性

/boot分区用于存放引导文件,不能基于LVM创建

2. LVM机制的基本概念

2.1 PE(Physical Extend)

卷的最小单位,默认4M大小,就像我们的数据是以页的形式存储一样,卷就是以PE的形式存储

2.2 PV (Physical Volume, 物理卷)

物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(PE),从而构成物理卷
在这里插入图片描述

2.3VG (Volume Group, 卷组)

由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷
在这里插入图片描述

2.4 LV (Logical Volume, 逻辑卷)

从卷组中分割出的一块空间,形成逻辑卷。使用mkfs 等工具可在逻辑卷上创建文件系统
在这里插入图片描述

二.LVM管理命令

功能物理卷管理卷组管理逻辑卷管理
Scan扫描pvscanvgscanlvscan
Create建立pvcreatevgcreatelvcreate
Display显示pvdisplayvgdisplaylvdisplay
Remove删除pvremovevgremovelvremove
Extend扩展——vgextendlvextend
Reduce减少——vgreducelvreduce

三.LVM流程

1.添加俩块磁盘,之后关机或打此命令(无需重启)

[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
**再打fdisk -l  看看**
[root@localhost ~]# fdisk -l

磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000e6563

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      976895      487424   83  Linux
/dev/sda2          976896   125829119    62426112   8e  Linux LVM

磁盘 /dev/mapper/centos-root:48.3 GB, 48318382080 字节,94371840 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:7012 MB, 7012876288 字节,13697024 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdc:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

2.使用fdisk工具将磁盘设备/dev/sdb、 /dev/sdc划分出主分区sdb1、sdc1, 并且把分区类型的ID标记号改为“8e"

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x92f842ed 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-125829119,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119):=^H+^[[D
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119):+20G
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):L

 0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       

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

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x92f842ed

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41945087    20971520   8e  Linux LVM

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (41945088-125829119,默认为 41945088):
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-125829119,默认为 125829119):+20G
分区 2 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x92f842ed

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41945087    20971520   8e  Linux LVM
/dev/sdb2        41945088    83888127    20971520   83  Linux

命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xe9101101 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-125829119,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119):+20G
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (41945088-125829119,默认为 41945088):
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-125829119,默认为 125829119):+20G
分区 2 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdc:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe9101101

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41945087    20971520   83  Linux
/dev/sdc2        41945088    83888127    20971520   83  Linux

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):
起始 扇区 (83888128-125829119,默认为 83888128):
将使用默认值 83888128
Last 扇区, +扇区 or +size{K,M,G} (83888128-125829119,默认为 125829119):
将使用默认值 125829119
分区 3 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):3
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p

磁盘 /dev/sdc:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xe9101101

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41945087    20971520   8e  Linux LVM
/dev/sdc2        41945088    83888127    20971520   8e  Linux LVM
/dev/sdc3        83888128   125829119    20970496   8e  Linux LVM

命令(输入 m 获取帮助):w
The partition table has been altered!

3.创建物理卷

[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.

4.创建卷组(组名为dzy)

[root@localhost ~]# vgcreate dzy /dev/sdb1 /dev/sdc1
  Volume group "dzy" successfully created

5.创建逻辑卷(卷名dzyhah,容量30G,生成路径为 /dev/dzy/dzyhah)

[root@localhost ~]# lvcreate -L 30G -n dzyhah dzy
  Logical volume "dzyhah" created.

--- Logical volume ---
  LV Path                /dev/dzy/dzyhah
  LV Name                dzyhah
  VG Name                dzy
  LV UUID                uISEFe-XbOg-9Xui-NSOu-s2cC-0G1x-ZXJKUE
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-08-11 23:54:57 +0800
  LV Status              available
  # open                 0
  LV Size                30.00 GiB
  Current LE             7680
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3

6.对逻辑卷进行格式化,创建XFS文件系统,并挂载到/dzy_class/目录下

[root@localhost ~]# mkfs.xfs /dev/mapper/dzy-dzyhah 
meta-data=/dev/mapper/dzy-dzyhah isize=512    agcount=4, agsize=1966080 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=7864320, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=3840, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

```挂载
[root@localhost /]# mount /dev/mapper/dzy-dzyhah /dzy_class/
[root@localhost /]# mount -a
[root@localhost /]# 
[root@localhost /]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   45G  3.6G   42G    8% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G  9.1M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1                473M  170M  303M   36% /boot
/dev/mapper/centos-home  6.6G   38M  6.5G    1% /home
tmpfs                    378M   20K  378M    1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0  100% /run/media/big/CentOS 7 x86_64
tmpfs                    378M     0  378M    0% /run/user/0
/dev/mapper/dzy-dzyhah    30G   33M   30G    1% /dzy_class

``

`扩容

[root@localhost dzy_class]# vgextend dzy /dev/sdc2
  Volume group "dzy" successfully extended
  Size of logical volume dzy/dzyhah changed from 30.00 GiB (7680 extents) to 50.00 GiB (12800 extents).
  Logical volume dzy/dzyhah successfully resized.

再刷新下

[root@localhost dzy_class]# xfs_growfs /dev/mapper/dzy-dzyhah 
[root@localhost dzy_class]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   45G  3.6G   42G    8% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G  9.1M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1                473M  170M  303M   36% /boot
/dev/mapper/centos-home  6.6G   38M  6.5G    1% /home
tmpfs                    378M   20K  378M    1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0  100% /run/media/big/CentOS 7 x86_64
tmpfs                    378M     0  378M    0% /run/user/0
/dev/mapper/dzy-dzyhah    50G   33M   50G    1% /dzy_class

四.磁盘配额

1.实现磁盘配额的条件

需要Linux内核支持
安装xfsprogs与quota软件包

2.Linux磁盘限额的特点

作用范围:针对指定的文件系统(分区)
限制对象:用户账号、组账号
限制类型:磁盘容量、文件数量
限制方法:软限制、硬限制
硬限制:是指对资源节点和数据块的绝对限制,在任何情况下都不允许用户超过这个限制
软限制:是指用户可以在一定时间范围内超过软限制的额度,在硬限制的范围内继续申请资源,同时系统会在用户登录时给出警告信息和仍可继续申请资源剩余时间.如果达到时间期限,用户的硬盘使用仍超过软限制的额度,则系统将不允许用户再申请硬盘资源
注:(默认时间为一周)

3.编辑基本命令,选项及步骤

CentOS7中设置磁盘配额步骤步骤
在这里插入图片描述1、检查是否已安装xfsprogs和xfs_ quota软件包

rpm -q xfsprogs quota
yum install -y xfsprogs quota

2**.以支持配额功能的方式挂载文件系统**

[root@localhost /]# umount /dzy_class/               先卸载因为不符合条件

输入mount(刷新所有挂载),后找到原因,添加挂载参数"usrquota, grpquota"用于增加对用户、组配额功能的支持,而此没有,所以要卸载

/dev/mapper/dzy-dzyhah on /dzy_class type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

临时挂载


[root@localhost dzy_class]# mount -O usrquota,grpquota /dev/dzy/dzyhah /dzy_class

[root@localhost /]# vim /etc/fstab         

进行永久挂载

/etc/fstab
# Created by anaconda on Wed Aug 11 22:50:32 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=2bc13e94-93e0-4e76-af2a-eebf5c5076b3 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/mapper/dzy-dzyhah           /dzy_class   xfs   defaults,usrquota,grpquota 0 0  
~                                                                                               
~                                                                                       

或使用此命令进行永久挂载

[root@localhost dzy_class]# echo "/dev/mapper/dzy-dzyhah" /dzy_class/ xfs defaults 0 0

编辑用户和组账号的配额设置

[root@localhost /]# xfs_quota -x -c 'limit -u bsoft=80m bhard=100m isoft=8 ihard=10 gxh' /dzy_class/

-x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用。
-c: 表示直接调用管理命令。
-u: 指定用户账号对象
-g: 指定组账号对象
bsoft: 设置磁盘容量的软限制数值(默认单位为KB)。
bhard:设置磁盘容量的硬限制数值(默认单位为KB)。
isoft:设置磁盘文件数的软限制数值。
ihard:设置磁盘文件数的硬限制数值。
验证磁盘配额的命令

useradd zhangsan 
passwd zhangsan
xfs_ quota -x -c ' limit -u bsoft=80M bhard=10QM isoft=40 ihard=50 zhangsan' /opt/

#仅限制磁盘容量
xfs_ quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /opt/
#仅限制文件数
xfs_ quota -x -c 'limit -u isoft=4 ihard=5 zhangsan' /opt/
#仅限制磁盘容量
xfs_ quota -x -C ' limit -u bsoft=80M bhard=100M zhangsan' /opt/
#仅限制文件数
xfs quota -x -c 'limit -u isoft=4 ihard=5 zhangsan' /opt/

#查看zhangsan磁盘容量限制
xfs_ quota -C ' quota -uv zhangsan' /opt/
#查看zhangsan文件数限制
xfs quota -C 'quota -i -uv zhangsan' /opt/


3验证磁盘配额功能

命令说明
dd是一个设备转换和连续复制的命令
if指定输入设备(或文件)
of指定输出设备(或文件
bs指定读取数据块的大小
count指定读取数据块的数量
/dev/zero‘零’设备文件,可以无限的提供空字符,常用来生成一个特定大小的文件。用于测试。
chmod 777 /opt
#给权限
su zhangsan
cd /opt
#验证磁盘容量超限
dd if=/dev/ zero of=/opt/ddtest. txt bs=10M count=12

#验证磁盘文件数超限
touch {aa,bb, cc,dd,ee, ff} . txt


4.查看磁盘配额使用情况

#查看所有可用分区的磁盘容量配额使用情况
xfs_quota -X -C ' report -a'

#查看磁盘容量和文件数的报告
xfs_quota-X -C  'report -abih '


补充
停止配额

xfs_quota -x -c 'off -u' /配额的目录
xfs_quota -x -c 'off -g' /配额的目录
xfs_quota -x -c 'off -p' /配额的目录

删除配额

xfs_quota -x -c 'remove -u' /配额目录
xfs_quota -x -c 'remove -g' /配额目录
xfs_quota -x -c 'remove -p' /配额目录

总结

如何在虚拟机的环境下添加硬盘
如何用fdlisk在新盘上建立分区
如何按要求格式化分区并挂载
如何进行磁盘配额

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 17:05:23  更:2021-08-12 17:05:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 11:42:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码