Linux磁盘高级操作

news2024/11/17 8:51:18

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

科技巨头的下一个目标:Web3与物联网融合

引言 随着技术的不断演进和创新&#xff0c;科技巨头们正在将目光聚焦到Web3与物联网的融合领域&#xff0c;这将开启一个全新的数字时代。本文将深入探讨科技巨头们在这一领域的动向&#xff0c;以及融合可能带来的影响和未来发展方向。 Web3与物联网的融合趋势 技术发展的趋…

【手写大跟堆详解】

文章目录 大跟堆介绍大跟堆的结构大跟堆的应用场景大跟堆的代码实现 大跟堆介绍 大根堆&#xff08;Max Heap&#xff09;是一种特殊的二叉树结构&#xff0c;它满足以下两个条件&#xff1a; 1.完全二叉树&#xff1a;大根堆是一棵完全二叉树&#xff0c;即除了最后一层外&am…

Web Server项目实战4-服务器编程基本框架和2种高效的事件处理模式

服务器编程基本框架 虽然服务器程序种类繁多&#xff0c;但其基本框架都一样&#xff0c;不同之处在于逻辑处理 模块功能I/O处理单元处理客户连接&#xff0c;读写网络数据逻辑单元业务进程或线程网络存储单元数据库、文件或缓存请求队列各单元之间的通信方式 I/O 处理单元是…

520主题趣味小游戏玩法线上互动的作用是什么

行业商家借势520气氛&#xff0c;往往能低成本达到预期效果&#xff0c;包括但不限于品牌传播、渠道引流涨粉、用户促活引导等&#xff0c;除了前面推荐的互动玩法外&#xff0c;在【雨科】平台的这几款520趣味小游戏同样值得关注。 1、爱你不止520 这是一款九宫格抽奖活动&am…

【Java面试】三、Redis篇(下)

文章目录 1、抢券场景2、Redis分布式锁3、Redisson实现分布式锁4、Redisson实现的分布式锁是可重入锁5、Redisson实现分布式锁下的主从一致性6、面试 1、抢券场景 正常思路&#xff1a; 代码实现&#xff1a; 比如优惠券数量为1。正常情况下&#xff1a;用户A的请求过来&a…

利用神经网络学习语言(六)——总结与常见面试问题

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 文章列表&#xff1a; 利用神经网络学习语言&#xff08;一&#xff09;——自然语言处理的基本要素利用神经网络学习语言&…

基于STM32看Cortex-M内核相关的一些底层知识

文章目录 固件起始地址存储了主栈指针和向量表内容启动文件分析程序启动流程Code,RO Data,RW Data, ZI Data启动流程Regin$$Table 固件起始地址存储了主栈指针和向量表内容 《ARM Cortex-M3与Cortex-M4权威指南》中的4.8章节复位和复位流程中有下面这段的描述&#xff1a; 在复…

医疗软件供应链安全治理:保障医疗服务质量和患者安全的当务之急!

如今&#xff0c;随着医疗数智化的不断深入&#xff0c;医共体网络、远程医疗网络、区域医疗网络、互联网医院等系统建设日益普及&#xff0c;医疗信息系统从基础应用进阶到智能医疗阶段。医疗机构对医疗软件采购、外包开发以及调用第三方开发资源的需求日益增加。 然而&#x…

buuctf的RSA(二)

1.RSA 知道 flag.enc 和 pub.key&#xff0c;典型的加密、解密 将pub,key 改为pub.txt 打开后发现公钥 在RSA公私钥分解 Exponent、Modulus&#xff0c;Rsa公私钥指数、系数(模数)分解--查错网 进行解密 得到e65537 n8693448229604811919066606200349480058890565…

S-Clustr+H4vdo 僵尸网络锁屏播放锁屏插件

项目地址:https://github.com/MartinxMax/S-Clustr-Ring 视频 用法 安装H4vdo依赖 在Install目录中选择你的操作系统安装依赖Windows_H4vdo_plugin_installation 启动H4vdo服务端 $ python3 Generate.py [Device Type (Number)]>7 [] [0] Start RTMP server [1] Skip &g…

家政预约小程序05服务管理

目录 1 设计数据源2 后台管理3 后端API4 调用API总结 家政预约小程序的核心是展示家政公司提供的各项服务的能力&#xff0c;比如房屋维护修缮&#xff0c;家电维修&#xff0c;育婴&#xff0c;日常保洁等。用户在选择家政服务的时候&#xff0c;价格&#xff0c;评价是影响用…

关于抖音小程序开发代码修改了,但是真机调试代码不更新问题解决(全网第一成功解决方案,无论安卓或苹果)

各位铁铁&#xff0c;今天开发小程序在抖音小程序适配时&#xff0c;终于是又一次踩到这个恶心的坑了&#xff0c;现在就记录一下&#xff0c;方便我以后查找&#xff0c;也希望帮助到当前被它所坑害的你&#xff01; 具体实现步骤如下&#xff1a; 1.到你的抖音开发平台&…

高效利用键盘上的 caps lock(大写键)实现中英切换

先看效果 在中文输入环境中&#xff0c;Caps Lock 键经常被忽视&#xff0c;占据了键盘上的黄金位置却很少派上用场。接下来&#xff0c;我将介绍如何将这个闲置的键合理利用&#xff0c;让它变得更加实用。 第一步 设置&#xff1a; 我以五笔为例&#xff1a; 1.输入法默认…

国内快速下载hugging face大模型的方法

由于众所周知的原因&#xff0c;从hugging face下载大模型比较困难&#xff0c;幸好国内有人做了镜像站&#xff0c;可以通过国内的镜像站进行快速下载&#xff0c;以下是配置方法。 我的系统是ubuntu 22&#xff0c;这里记录的方法只对debian/ubuntu有效。 git-lfs/INSTALLI…

精准安全运维,统信UOS服务器版V20(1070)漏洞修复指南丨年度更新

随着信息安全威胁的不断升级&#xff0c;操作系统的安全性已成为企业运维的关键要素。 为了确保业务运行环境的安全无忧&#xff0c;统信软件持续致力于技术创新和优化&#xff0c;并于日前重磅推出了统信UOS服务器版V20&#xff08;1070&#xff09;。该系统提供了高频补丁更…

将黑白图的白色部分叠加在彩色原图

彩色原图&#xff1a; 黑白图&#xff1a; 合成后&#xff1a; 代码&#xff1a; import cv2 import numpy as np# 读取原图和轮廓线条图 original_img cv2.imread(..\\IMGS\\pp.png) # 替换为原图路径 contour_img cv2.imread(..\\IMGS\\pp_edge.png, cv2.IMREAD_GRAYSCAL…

1 计算机硬件-CPU-校验码-存储系统-输入输出设备-总线结构

计算机硬件 考情分析&#xff1a;趋势很小&#xff0c;22年考过&#xff0c;根据趋势以后考的可能较小 基本组成&#xff1a;运算器&#xff0c;控制器&#xff0c;储存器&#xff0c;输入设备&#xff0c;输出设备运算器和控制器也统称为中央处理单元&#xff08;CPU&#xf…

flutter使用dbus插件时,在终端无法使用“dart-dbus”命令

不用flutter的人&#xff0c;可能都不会找到这儿&#xff0c;遇到这个问题&#xff0c;所以这里默认flutter已经装过了&#xff0c;且对flutter如何使用插件也有所了解了。 由于我在项目中用到了dbus插件&#xff0c;用法如图所示&#xff0c;我需要使用这条命令来生成一个sou…

多模态大模型新进展——GPT-4o、Project Astra关键技术丨青源Workshop第27期

青源Workshop丨No.27 多模态大模型新进展—GPT-4o、Project Astra关键技术主题闭门研讨会 刚刚过去的两天&#xff0c;OpenAI、Google纷纷发布了多模态大模型的最新成果&#xff0c;GPT-4o、Project Astra先后亮相。 本周五&#xff08;北京时间5月17日&#xff09;18点&#x…

supOS NEO科技普惠!永久免费!亿元补贴

数字化转型正在全球蓬勃发展&#xff0c;工业操作系统进入大规模推广期&#xff01; 如果您正在被预算不足、技术团队不强、数字化投入产出比等问题困扰&#xff0c;supOS NEO是您最好的选择。 “让supOS走进万千工厂、千行百业&#xff01;让全世界每个工厂都能用得上supOS&am…