Linux磁盘高级操作

RAID

RAID存储系统是一种数据存储虚拟化技术,它将多个物理磁盘驱动器组合成一个或多个逻辑单元,以提供数据冗余和/或提高性能。

1. RAID 0 无奇偶校验与冗余(磁盘容错)的条带存储(带区卷/条带卷)

由两块或两块以上的硬盘组成
每块硬盘提供的空间大小必须一致
在所有动态磁盘中读写速度最快
磁盘损坏几率最大

2. RAID 1 镜像卷每块硬盘提供的空间大小必须一致

磁盘利用率最低(50%利用率)
拥有一定的磁盘容错功能
在所有动态磁盘中写入速度最慢
安全性最高

3. RAID 10 镜像与条带存储

是 RAID1 与 RAID0 的结合体
先进行镜像(RAID1),再进行条带存放(RAID0)
具有 RAID1 的安全性
具有 RAID0 的读写速度

4. RAID 01(条带存储与镜像)

是 RAID1 与 RAID0 的组合体
先进行条带存放(RAID0),再进行镜像(RADI1)

5. RAID10 与 RAID01 的区别

(1)数据读取的区别:
    RAID10:允许损坏不同组的两块硬盘,可以正常读取
    RAID01:允许损坏同组的两块硬盘,可以正常读取

(2)数据修复的区别:
	RAID10:同组的用一块硬盘复制,节约系统资源
	RAID01:一块损坏,需要多块硬盘参与修复

6. RAID5

由三块或三块以上的硬盘组成
每块硬盘提供的空间大小必须一致
拥有磁盘容错功能
磁盘利用率为 n-1/n

7. 预备磁盘功能(spare disk)

预备磁盘就是一块或多块本身不在磁盘阵列内的磁盘。当磁盘阵列中有磁盘损坏时,会被主动拉进磁盘阵列中,并将坏掉的那块磁盘移出磁盘列阵,然后立即重建数据系统。

LVM

一、概述

lvm是linux下对磁盘分区进行管理的一种工具,适合管理大存储设备,并允许用户动态扩容文件系统。

在这里插入图片描述

物理卷(PV)是lvm最底层的概念,是lvm的逻辑存储块,物理卷与磁盘分区是逻辑对应的关系。多个LVM物理卷可以合并或拆分,从而实现容量扩容和缩减。

卷组(VG)卷组是LVM逻辑上的设备、有物理卷组合而成、卷组的大小取决于物理卷的容量及个数。

逻辑卷(LV)逻辑卷可以理解成LVM中的分区。LV建立在VG之上,可以指定从VG中提取多少容量来创建逻辑卷,然后对LV进行格式化并挂载.

PEPV中可以分配的最小存储单元为PE,大小可以指定,默认4MB

LELV中可以分配的最小存储单元称为LE。在同一个卷组中,LE和PE大小相同且一 一对应

二、功能命令

功能pv管理命令VG管理命令LV管理命令
scan扫描pvscanvgscanlvscan
create创建pvcreatevgcreatelvcreate
display显示pvdisplayvgdisplaylvdisplay
remove移除pvremovevgremovelvremove
extend扩展vgextendlvresize
reduce减少vgreducelvreduce

常用查看操作命令

查看卷名查看简单卷信息扫描相关的所有对应的卷详细对应卷信息的查看
物理卷pvspvscanpvdisplay
卷组vgsvgscanvgdisplay
逻辑卷lvslvscanlvdisplay

三、操作方法

创建
1.创建pv物理卷
[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
2.创建vg卷组
[root@localhost ~]# vgcreate myvg /dev/sdb1
  Volume group "myvg" successfully created
3.创建lv逻辑卷

选项-L指定逻辑卷大小。-n指定逻辑卷名称、所属卷组名称

[root@localhost ~]# lvcreate -L 1G -n rs myvg
  Logical volume "rs" created.
扫描
1.扫描物理卷
[root@localhost ~]# pvscan
  PV /dev/sdb1   VG myvg            lvm2 [<2.00 GiB / 1020.00 MiB free]
  PV /dev/sda2   VG centos          lvm2 [<19.50 GiB / 0    free]
  Total: 2 [21.49 GiB] / in use: 2 [21.49 GiB] / in no VG: 0 [0   ]
2.扫描卷组
[root@localhost ~]# vgscan 
  Reading volume groups from cache.
  Found volume group "myvg" using metadata type lvm2
  Found volume group "centos" using metadata type lvm2
3.扫描逻辑卷
[root@localhost ~]# lvscan
  ACTIVE            '/dev/myvg/rs' [1.00 GiB] inherit
  ACTIVE            '/dev/centos/swap' [1.00 GiB] inherit
  ACTIVE            '/dev/centos/root' [<18.50 GiB] inherit
显示
1.显示物理卷详细信息
[root@localhost ~]# pvdisplay /dev/sdb1
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               myvg
  PV Size               2.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              511
  Free PE               255
  Allocated PE          256
  PV UUID               p3fERZ-62cr-w8Wg-rkki-ERcC-4qoO-mO8sE0
2.显示卷组myvg详细信息
[root@localhost ~]# vgdisplay myvg 
  --- Volume group ---
  VG Name               myvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <2.00 GiB
  PE Size               4.00 MiB
  Total PE              511
  Alloc PE / Size       256 / 1.00 GiB
  Free  PE / Size       255 / 1020.00 MiB
  VG UUID               rA6hfY-a5CV-woOu-RzCH-yIeh-mHpO-2kPD9f
3.显示逻辑卷详细信息
[root@localhost ~]# lvdisplay /dev/myvg/rs 
  --- Logical volume ---
  LV Path                /dev/myvg/rs
  LV Name                rs
  VG Name                myvg
  LV UUID                rAVHET-vdkf-xJI2-rbjJ-m3QN-MbVz-XTS5Jc
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-05-18 18:03:09 +0800
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
扩展
1.扩展卷组
#新建物理卷
[root@localhost ~]# pvcreate /dev/sdb2
  Physical volume "/dev/sdb2" successfully created.
  
[root@localhost ~]# vgextend myvg /dev/sdb2
  Volume group "myvg" successfully extended
2.扩展逻辑卷

选项-L指定逻辑卷大小

[root@localhost ~]# lvresize -L +1G /dev/myvg/rs 
  Size of logical volume myvg/rs changed from 2.00 GiB (512 extents) to 3.00 GiB (768 extents).
  Logical volume myvg/rs successfully resized.
减少
1.减少卷组
[root@localhost ~]# vgreduce myvg /dev/sdb2
  Physical volume "/dev/sdb2" still in use
2.减少逻辑卷
[root@localhost ~]# lvreduce -L -1G /dev/myvg/rs 
  WARNING: Reducing active logical volume to 2.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/rs? [y/n]: y
  Size of logical volume myvg/rs changed from 3.00 GiB (768 extents) to 2.00 GiB (512 extents).
  Logical volume myvg/rs successfully resized.
移除
1.移除逻辑卷
[root@localhost ~]# lvremove /dev/myvg/rs 
Do you really want to remove active logical 
2.移除卷组
[root@localhost ~]# vgremove myvg 
  Volume group "myvg" successfully removed
3.移除物理卷
[root@localhost ~]# pvremove /dev/sdb2
  Labels on physical volume "/dev/sdb2" successfully wiped.

四、使用工具完成LVM划分

1.安装SSM工具

SSM:检查关于可用硬驱和LVM卷的信息。

[root@localhost ~]# yum -y install system-storage-manager
2.列出设备信息
[root@localhost ~]# ssm list dev
------------------------------------------------------------
Device        Free      Used      Total  Pool    Mount point
------------------------------------------------------------
/dev/sda                       20.00 GB                     
/dev/sda1                     512.00 MB          /boot      
/dev/sda2  0.00 KB  19.50 GB   19.50 GB  centos             
/dev/sdb                       20.00 GB                     
/dev/sdb1                       2.00 GB          /mnt       
/dev/sdb2                       2.00 GB                     
/dev/sdc                       20.00 GB                     
------------------------------------------------------------
3.列出存储池信息
[root@localhost ~]# ssm list pool
--------------------------------------------------
Pool    Type  Devices     Free      Used     Total  
--------------------------------------------------
centos  lvm   1        0.00 KB  19.50 GB  19.50 GB  
--------------------------------------------------
4.自动把设备变成PV,创建VG,LV,格式化文件系统,自动挂载
[root@localhost ~]# ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb2 /mail-lv
-s:lv大小  -n:lv名称  --fstype lv文件系统类型  -p:卷组名  设备  挂载点
[root@localhost ~]# df -h /mail-lv/
文件系统                   容量  已用  可用 已用% 挂载点
/dev/mapper/mail-mail--lv 1014M   33M  982M    4% /mail-lv

磁盘配额

1. 为什么要有Quota磁盘配额(起因)

由于Linux是多任务多用户的操作系统,所以多个用户使用同一块硬盘的情况时有发生

2. Quota能做什么(作用)

限制用户和组的容量限制和文件限量限制(block和inode)

限制block就等于限制了用户可以使用的磁盘容量。

限制inode就等于限制了用户能创建的文件数量。

限制某一目录的最大磁盘配额(directiory project):

3. Quota磁盘配额(开启条件)

盘配额是针对分区进行的设置

内核必须支持quota:在cent5.x以后都已经默认支持quota功能

[root@localhost yang]# grep CONFIG_QUOTA /boot/config-3.10.0-957.el7.x86_64 
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y

查看quota命令是否安装

[root@localhost yang]# rpm -qa |grep quota
quota-4.01-17.el7.x86_64
quota-nls-4.01-17.el7.noarch

quota只对一般身份用户有效(例如root就不能设置quota)

4. 磁盘配额的基本概念(概念)

软限制(soft)用户在低于软限制的时候可以正常使用磁盘,如果超过软限制之后且低于硬限制的时候,每次用户登录系统时系统会发出警告信息,并且超出部分会有宽限天数,宽限天数到期后锁住用户磁盘使用权限。

硬限制(hard)表示用户的用量绝对不会超过这个限制值,如果超过硬限制则会所著该用户对磁盘的使用权限。

宽限天数宽限时间只有用在用户的磁盘用量介于软限制和硬限制之间时会出现。由于达到硬限制的时候用户的磁盘使用权会被锁住。宽限天数默认为7天。

5.磁盘配额实验(如何使用)

5.1 临时开启磁盘配额
#临时开启磁盘配额
   17  mount -o usrquota,grpquota /dev/sdb1 /mnt/
   24  mount | grep "/dev/sdb1"
   25  df -h
   26  df -h /dev/sdb1
5.2 永久开启磁盘配额
#永久开启磁盘配额
[root@localhost ~]# blkid | grep "sdb1"
/dev/sdb1: UUID="089d5a72-161d-49bc-ba0a-2df9f1ac0a2a" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="08ddce5e-a2b8-4ced-a7f8-60905650d62d" 
[root@localhost ~]# vim /etc/fstab
UUID=089d5a72-161d-49bc-ba0a-2df9f1ac0a2a /mnt  xfs defaults,usrquota,grpquota 0 0
5.3 编辑磁盘配额命令(xfs_quota -x -c “命令”)
xfs_quota -x -c "命令"
	-x:启用专家模式允许对磁盘配额进行编辑
	-c:quota可以在交互模式和命令模式两种方法下执行,添加-c命令可以让quota顺序执行-c选项后的命令
		print:输出所有具有xfs设备标识
		df:和df命令相同,可以添加-b、-i等
		report:输出当前的磁盘配额信息,需要结合ugrbi等选项
		state:目前支持磁盘配额的文件系统信息
5.4 输出所有具有xfs设备标识
[root@localhost ~]# xfs_quota -x -c "print"
Filesystem          Pathname
/                   /dev/mapper/centos-root
/boot               /dev/sda1
/mnt                /dev/sdb1 (uquota, gquota, pquota)
5.5 查看block和inode
[root@localhost ~]# xfs_quota -x -c "df -i"
Filesystem              Inodes      IUsed      IFree IUse% Pathname
/dev/mapper/centos-root
                       9697280     127816    9569464    1% /
/dev/sda1               262144        340     261804    0% /boot
/dev/sdb1              1048576          6    1048570    0% /mnt

[root@localhost ~]# xfs_quota -x -c "df -b"
Filesystem           1K-blocks       Used  Available  Use% Pathname
/dev/mapper/centos-root
                      19384320    3670612   15713708   19% /
/dev/sda1               520868     162892     357976   31% /boot
/dev/sdb1              2086912      33004    2053908    2% /mnt
5.6 查看当前支持磁盘配额的文件系统
[root@localhost ~]# xfs_quota -x -c "state"
User quota state on /mnt (/dev/sdb1)
  Accounting: ON    #是否记录
  Enforcement: ON   #是否开启
  Inode: #67 (1 blocks, 1 extents)   用户
Group quota state on /mnt (/dev/sdb1)
  Accounting: ON
  Enforcement: ON
  Inode: #68 (1 blocks, 1 extents)   用户组
Project quota state on /mnt (/dev/sdb1)
  Accounting: ON
  Enforcement: ON
  Inode: #68 (1 blocks, 1 extents)   目录
Blocks grace time: [7 days]
Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]  #宽限天数
5.7 输出当前用户、用户组、目录磁盘限制信息
[root@localhost ~]# xfs_quota -x -c "report -ugpbih" /mnt/

#不加-x选项不能够成功执行命令。
#report后面的选项分别是 
u:用户  g:组  b:block块  p:目录  i:inode号  h:以常见单位大小显示
5.8 设置限制用户磁盘文件数量和容量
#限制用户容量
[root@localhost ~]# xfs_quota -x -c "limit -u bsoft=20M bhard=40M yang" /mnt/

#使用dd命令验证用户容量
[yang@localhost mnt]$ dd if=/dev/zero of=/mnt/a.txt bs=4M count=20
dd: 写入"/mnt/a.txt" 出错: 超出磁盘限额
记录了11+0 的读入
记录了10+0 的写出
41943040字节(42 MB)已复制,0.0417043 秒,1.0 GB/秒

#限制用户文件数量
[root@localhost ~]# xfs_quota -x -c "limit -u isoft=4 ihard=10 yang" /mnt/
#使用mkdir在yang用户验证文件数量
[yang@localhost mnt]$ mkdir {1..20}.txt
mkdir: 无法创建目录"11.txt": 超出磁盘限额
mkdir: 无法创建目录"12.txt": 超出磁盘限额
mkdir: 无法创建目录"13.txt": 超出磁盘限额
mkdir: 无法创建目录"14.txt": 超出磁盘限额
5.9 设置限制用户组磁盘文件数量和容量
#限制用户组容量和文件数量
[root@localhost ~]# xfs_quota -x -c "limit -g  bsoft=20M bhard=40M yang" /mnt/

#验证容量限制
[xxhf@localhost mnt]$ dd if=/dev/zero of=/mnt/a.txt bs=40M count=2
dd: 写入"/mnt/a.txt" 出错: 超出磁盘限额
记录了2+0 的读入
记录了1+0 的写出
41943040字节(42 MB)已复制,0.0961088 秒,436 MB/秒

#限制文件数量
[root@localhost ~]# xfs_quota -x -c "limit -g  isoft=20M ihard=40M yang" /mnt/

5.10 设置限制目录磁盘文件数量和容量
[root@localhost ~]# echo "10:/mnt" >> /etc/projects 
[root@localhost ~]# echo "mymu:10" >> /etc/projid
[root@localhost ~]# xfs_quota -x -c "print" /mnt/
Filesystem          Pathname
/mnt                /dev/sdb1 (uquota, gquota, pquota)
/mnt                /dev/sdb1 (project 10, mymu)

#限制目录容量
[root@localhost ~]# xfs_quota -x -c "limit -p bsoft=20M bhard=40M mymu" /mnt/

#限制文件数量
[root@localhost ~]# xfs_quota -x -c "limit -p isoft=2 ihard=4 mymu" /mnt/

5.11 修改用户、用户组、目录宽限天数
[root@localhost ~]# xfs_quota -x -c "timer -u -bir 15days" /mnt/
#timer命令的选项
# -u 设置用户配额 -g设置用户组配额 -p设置目录配额 -r实时块限制

#表示对宽限时间已经修改为15天
[root@localhost ~]# xfs_quota -x -c "state" /mnt/
Blocks grace time: [15 days]
Inodes grace time: [15 days]
Realtime Blocks grace time: [15 days]
5.12 查看当前SELinux状态
getenforce	#查看当前SELinux
在命令结果中:
	Enforcing	#SELinux正常运行。
	Permissive #当前selinux只记录不限制。
[root@localhost ~]# setenforce #改变当前SELinux运行状态。临时生效。
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

数据备份

一、哪些数据需要备份

1.linux系统重要数据

root目录、home目录下、etc目录下

2.安装服务的数据

例如apache和mysql

根据自己实际情况进行数据备份

二、备份策略

1.完全备份

把所有需要备份数据全部备份

优点:数据恢复方便

缺点:需要备份的数据量较大、备份时间较长、不可能实现每天备份

2.增量备份

先进行一次完全备份,服务器运行一段时间后,比较当前系统和完全备份数据之间的差别,只备份有差别的数据。

在经过一段时间之后,进行第二次增量备份,第二次增量备份时,当前系统是和第一次增量备份的数据进行比较,也只是备份有差别的数据。第三次增量备份是和第二次增量备份的数据进行比较。

3.差异备份

差异备份也要先进行完全备份,和增量备份不同的是,每次差异备份都是和原始的完全备份不同的数据,总的说每次差异备份的参照物是原始的完全备份,不是上一次的差异备份。

三、备份方法

命令格式:dd if=“输入文件” of=“输出文件” bs=“数据块” count=“数量”

参数:       if:定义输入数据的文件,也可以是输入设备
			of:定义输出数据的文件,也可以是输出设备
			bs:指定数据块的大小,也就是定义一次性读取或写入多少字节,默认数据块大小是512字节
			count:指定bs的数量
操作练习
[root@localhost ~]# dd if=/etc/httpd/conf/httpd.conf of=/tmp/httpd.bark
记录了22+1 的读入
记录了22+1 的写出
11753字节(12 kB)已复制,0.00111368 秒,10.6 MB/秒
#将磁盘备份到tmp目录下
[root@localhost ~]# dd if=/dev/sda1 of=/tmp/boot.bak
记录了1048576+0 的读入
记录了1048576+0 的写出
536870912字节(537 MB)已复制,2.0753 秒,259 MB/秒
[root@localhost ~]# ll -h /tmp/boot.bak 
-rw-r--r--. 1 root root 512M 516 19:46 /tmp/boot.bak
#将tmp的数据恢复到sda1磁盘下
[root@localhost ~]# dd if=/tmp/boot.bak of=/dev/sda1
记录了1048576+0 的读入
记录了1048576+0 的写出
536870912字节(537 MB)已复制,2.59553 秒,207 MB/秒
[root@localhost ~]# 
注意:虽然dd功能命令很强大,但是也有缺点,复制的时间较长(根据服务器性能)

命令格式:scp 起始目录 目标用户名@IP地址:/目录

#上传到192.168.11.132
[root@localhost ~]# scp wangxunce.txt root@192.168.11.132:/root/
root@192.168.11.132's password: 
wangxunce.txt                              100%    0     0.0KB/s   00:00    
[root@192.168.11.132 ~]# ls
anaconda-ks.cfg  wangxunce.txt

xfsdump -f 备份文件存放位置 被备份路径或设备文件

#交互式备份
[root@localhost test]# xfsdump -f /opt/dum_sdb1 /dev/sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control

 ============================= dump label dialog ==============================

please enter label for this dump session (timeout in 300 sec)
 -> dump_sdb1   #指定备份标签
session label entered: "dump_sdb1"

 --------------------------------- end dialog ---------------------------------

xfsdump: level 0 dump of localhost.localdomain:/test
xfsdump: dump date: Fri May 17 04:13:30 2024
xfsdump: session id: 3a2e2971-03b7-4bff-9325-c6f939da0437
xfsdump: session label: "dump_sdb1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 25856 bytes
xfsdump: /var/lib/xfsdump/inventory created

 ============================= media label dialog =============================

please enter label for media in drive 0 (timeout in 300 sec)
 -> sdb1  #指定设备标签
media label entered: "sdb1"

 --------------------------------- end dialog ---------------------------------

xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 25552 bytes
xfsdump: dump size (non-dir files) : 2592 bytes
xfsdump: dump complete: 21 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /opt/dum_sdb1 OK (success)
xfsdump: Dump Status: SUCCESS
[root@localhost test]# 
#非交互式备份
[root@localhost ~]# xfsdump -f /opt/dum_2 /test -L dump_2 -M sdb1
......
xfsdump: dump complete: 0 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /opt/dum_2 OK (success)
xfsdump: Dump Status: SUCCESS
-L:每次备份的session标签
-M:媒体标签,这里写对那个设备进行备份
-s:文件路径 只对指定的文件进行备份,-s指定的时候写的是相对路径

[root@localhost ~]# xfsdump -f /opt/dum_linux -s linux /test -L dump_linux -M sdb1
.............
xfsdump: Dump Status: SUCCESS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/633194.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux-文件或目录权限

在使用 ll 时&#xff0c;可以查看文件夹内容的详细信息&#xff0c;信息的第1位表示类型&#xff0c;具体信息如下&#xff1a; 类型说明-普通文件d文件夹b块设备文件c字符设备文件p管道文件s套接口文件 第2-10位表示权限&#xff0c; 举例&#xff1a;rwxr-xr-x 类型说明r…

简单快捷的图片格式转换工具:认识webp2jpg-online

经常写博客或记笔记的朋友们可能会碰到图床不支持的图片格式或图片太大需要压缩的情况。通常&#xff0c;我们会在浏览器中搜索在线图片格式转换器&#xff0c;但这些转换器往往伴有烦人的广告或要求登录&#xff0c;并且支持的转换格式有限。最近&#xff0c;我在浏览 GitHub …

java8总结

java8总结 java8新特性总结1. 行为参数化2. lambda表达式2.1 函数式接口2.2 函数描述符 3. Stream API3.1 付诸实践 java8新特性总结 行为参数化lambda表达式Stream Api 1. 行为参数化 定义&#xff1a;行为参数化&#xff0c;就是一个方法接受多个不同的行为作为参数&#x…

HiWoo Box边缘计算网关

​在数字化浪潮汹涌的今天&#xff0c;边缘计算网关成为了连接物理世界与数字世界的桥梁&#xff0c;其重要性日益凸显。HiWoo Box&#xff0c;作为一款功能强大的边缘计算网关&#xff0c;不仅具备了传统网关的基本功能&#xff0c;更在数据采集、处理、传输等方面展现出了卓越…

岛屿问题刷题

200. 岛屿数量 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int numIslands(char[][] grid) {int n grid.length;//grid行数int m grid[0].length;//grid列数int res 0;for(int r 0;r<n;r){for(int c0;c<m;c){if(grid[r][c]1){dfs(grid,r,c);res…

Web Server项目实战3-Web服务器简介及HTTP协议

Web Server&#xff08;网页服务器&#xff09; 一个 Web Server 就是一个服务器软件&#xff08;程序&#xff09;&#xff0c;或者是运行这个服务器软件的硬件&#xff08;计算机&#xff09;。其主要功能是通过 HTTP 协议与客户端&#xff08;通常是浏览器&#xff08;Brow…

面试八股之MySQL篇5——主从同步原理篇

&#x1f308;hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;一名不断学习的码农&#xff0c;很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 &#x1f3c3;人生之义&#xff0c;在于追求&#xff0c;不在成败&#xff0c;勤通…

绿色智能:AI机器学习在环境保护中的深度应用与实践案例

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

CSS transform 三大属性 rotate、scale、translate

transform 浏览器支持定义和用法translate位移函数rotate旋转函数scale缩放函数 浏览器支持 表格中的数字表示支持该属性的第一个浏览器版本号。 紧跟在 -webkit-, -ms- 或 -moz- 前的数字为支持该前缀属性的第一个浏览器版本号。 定义和用法 transform 属性向元素应用 2D…

音视频安卓主板记录仪手持终端定制开发_基于MT6762平台解决方案

音视频安卓主板采用了基于MT6762高性能处理器芯片的设计&#xff0c;其中包括4个主频高达2.0GHz的Cortex-A53核心和4个主频1.5GHz的Cortex-A53高效聚焦核心&#xff0c;可提供无比流畅的体验。搭载Android 12操作系统&#xff0c;系统版本进行了全新的优化&#xff0c;进一步确…

新火种AI|净利润上升628%,英伟达财报说明AI热潮还将持续

作者&#xff1a;一号 编辑&#xff1a;美美 AI大潮仍未放缓&#xff0c;英伟达再次超越预期。 今天凌晨&#xff0c;全球AI算力芯片龙头&#xff0c;被称为“AI时代卖铲人”的英伟达&#xff0c;正式公布了截至2024年4月28日的2025财年第一财季财报&#xff0c;其中第一财季…

Linux:top命令的每一列的具体含义

Linux&#xff1a;top命令的每一列的具体含义 文章目录 Linux&#xff1a;top命令的每一列的具体含义图片显示top命令的概念语法显示字段的含义顶部字段第二行第三行第四行第五行每列字段的含义 图片显示 top命令的概念 top命令上一个常用的Linux命令行工具&#xff0c;用于实…

医院是自建档案室还是档案寄存好呢

医院可以选择自建档案室或档案寄存&#xff0c;具体选择取决于医院的需求和资源。 自建档案室意味着医院会拥有自己的档案空间和设施&#xff0c;可以更方便地管理和保管档案。这种方式可以确保医院对档案的访问和控制有更多的自主权&#xff0c;同时也能够根据医院的需求进行档…

是做软件开发,还是软件测试,哪个职业更好,全方位对比

文章目录 前言一、市场需求二、技能需求三、工作强度四、行业趋势总结 前言 在IT行业中&#xff0c;软件开发和软件测试这两个职业长期共存&#xff0c;相爱相杀。很多人都纠结过是做软件开发还是做软件测试&#xff0c;本篇文章将进行全方位对比分析&#xff0c;供各位读者参…

小程序-收货地址管理模块实现

页面结构代码&#xff1a; address-form.vue --->新建地址和修改地址页面 <template><view class"content"><form><!-- 表单内容 --><view class"form-item"><text class"label">收货人</text>…

Chatgpt人工智能对话系统:引领的智能交互新时代 附带完整的源代码以及搭建教程

系统概述 在人工智能技术日新月异的今天&#xff0c;对话式AI系统正逐步成为连接人与信息、服务乃至情感的桥梁。其中&#xff0c;ChatGPT作为新一代人工智能对话系统的杰出代表&#xff0c;凭借其卓越的自然语言处理能力、个性化交互体验和广泛的应用场景&#xff0c;正在引领…

【Linux】-Flink分布式内存计算集群部署[21]

注意&#xff1a; 本节的操作&#xff0c;需要前置准备好Hadoop生态集群&#xff0c;请先部署好Hadoop环境 简介 Flink同spark一样&#xff0c;是一款分布式内存计算引擎&#xff0c;可以支撑海量数据的分布式计算 Flink在大数据体系同样是明星产品&#xff0c;作为新一代的…

ubuntu下交叉编译安卓FFmpeg 和 官方指导链接

将之前的编译方法在此记录 Linux系统&#xff1a;Ubuntu 18.04.6 LTS 交叉编译工具链&#xff1a;gcc-aarch64-linux-gnu gaarch64-linux-gnu ffmpeg版本&#xff1a;5.1.3 1.下载源码 ffmpeg官网&#xff1a;https://ffmpeg.org/download.html#releases 下载完成后&#x…

Yolov5保姆及入门-含源码【推荐】

前言 YOLO系列模型作为一种实时目标检测算法&#xff0c;自从YOLO1发布以来&#xff0c;就以其检测速度快、准确率高而受到广泛关注。随着技术的迭代&#xff0c;YOLO系列已经发展到了YOLO8。本文将详细介绍YOLO5的技术规格、应用场景、特点以及性能对比。 yolov5源码下载地址…

本地部署Terraria泰拉瑞亚私服并通过内网穿透生成公网地址远程联机

文章目录 前言1. 下载Terraria私服2. 本地运行Terraria 私服3. 本地Terraria私服连接4. Windwos安装Cpolar 工具5. 配置Terraria远程联机地址6. Terraria私服远程联机7. 固定远程联机地址8. 固定的联机地址测试 前言 本文将为你详细介绍在本地如何运行泰拉瑞亚本地私服和结合C…