NFS服务器(linux-linux)

news2024/11/24 3:19:53

目录

简介

NFS背景介绍

生产应用场景

NFS工作原理

示例图

流程

NFS的使用

安装

配置文件

主配置文件分析

实验1

NFS账户映射

实验2:

实验3

autofs自动挂载服务

产生原因

安装

配置文件分析

实验4

实验5

简介

NFS背景介绍

  • NFS是一种古老的用于UNIX/Linux主机之间进行文件共享协议。它过劳到你必须穿着白大褂才嗯那个接近一台计算机的年代。在那个年代,所有的联网计算机都被认为是可信的,而不像现今这样,任何人都有多种多样方法能连接到你的计算机。因此,NFS在开发的时候专注于快速及易用的文件共享,而忽视了其安全性设计

  • NFS(Network File System,网络文件系统)是FreeBSD支持的文件系统中的一种,它允许网络中的计算机(不同的计算机、不通的操作系统)之间通过TCP/IP网络共享资源,主要在UNIX系列操作系统上使用

  • NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地段的系统中看来,那个远程主机的目录就好像是自己的磁盘分区一样

  • 由于NFS支持的功能比较多,而不通功能能都会使用不通的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能所对应的端口并不固定,而是随机采取一些未被使用的小于1024端口用于传输,但如此一来就会产生客户端连接服务器的问题,因为客户端需要知道服务器端的相关端口才能够连接。此时就需要RPC

  • RPC(Remote Proceduce Call,远程过程调用):优于服务器在启动NFS是回随机选取数个端口号,并主动向RPC注册,所以RPC知道每个NFS功能所对应的端口上去。RPC采用固定端口号

  • 注:在启动NFS之前,要先启动RPC,否则NFS会无法向RPC注册。另外,RPC若重新启动,原来注册的数据会消失不见,因此RPC重启后,它管理的所有服务都需要重新启动以重新向RPC注册。

生产应用场景

  • NFS网络文件系统很像win系统的网络共享、安全功能、网络驱动映射,这也是和linux系统里的Samba服务器类似。只不过一般情况下,windows网络共享服务或Samba服务用于办公局域网共享,而互联网中小型网站集群架构后端常用NFS进行数据共享,如果是大型网站,那可能会用到更复杂的分布式文件系统。

  • 在企业集群架构的工作场景中,NFS作为所有前端web服务的共享存储,存储的内容一般包括网站用户上传的图片、附件、头像等,注意,网站的程序代码就不要放在NFS共享里了,因为网站程序是开发运维人员统一发布,不存在发布延迟问题,直接批量发布到web节点提供访问比共享到NFS里访问效率会更高些。

  • NFS是当前互联网系统架构中常用的数据存储服务之一,中小型网站(2000万PV(页面浏览量)以下)公示应用频率居高,大公司或门户除了使用NFS外,还可能会使用更为复杂的分布式文件系统

NFS工作原理

示例图

  • img

流程

  • 首先服务器端启动RPC服务,并开启111端口

  • 服务器端启动NFS服务,并向RPC注册端口信息

  • 客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

  • 服务端的RPC(portmap)服务反馈NFS端口信息给客户端。(服务器搭建成功可以使用下列命令查看,一般都是2049)

    [root@server ~]# cat /etc/services | grep nfs

NFS的使用

安装

  • 安装

    [root@server ~]# dnf  install  ntf-utils  -y  
    [root@server ~]# dnf  install  rpcbind -y   # 默认已安装

配置文件

  • 主配置文件:/etc/exports,文件不一定存在

  • /usr/sbin/exports:该文件是维护NFS共享目录资源的命令文件,可以使用命令重新共享/etc/exports的目录资源、卸载共享目录

  • 日志目录:/var/lib/nfs

  • 权限设置文件:/var/lib/nfs/etab

主配置文件分析

  • /etc/exports 文件默认为空文件,需要输入NFS共享命令

  • 格式:共享目录的路径 允许访问的NFS客户端 (共享权限参数)

  • 分析

    • 允许访问的NFS客户端:可以写完整的IP地址或IP网段,如:

      • 192.168.48.131/24

      • 192.168.48.131/255.255.255.0

      • 192.168.48.0/24

      • *:允许所有主机访问

    • 权限参数:必须卸载园括号中,且括号是紧挨着主机名的,全选的相关参数如下,多个参数之间使用逗号隔开:(,,)

      权限参数作用
      ro只读
      rw读写(最终还要看文件系统RWX权限)
      root_squash当NFS客户端以root账户访问时,映射为NFS服务端的匿名帐户(nobody)
      no_root_squash当NFS客户端以root账户访问时,映射为root账户(不推荐、不安全)
      all_squash无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名账户(nobody)推荐
      no_all_aquash客户端普通账户访问服务器的数据时,实际的信息原样显示
      anounid=anongid将文件的用户和工作组映射为指定UID和GID,若不值定则默认为65534(nobody)
      sync同步,同时将数据写入内容与硬盘中 推荐
      async异步,优先将数据保存到内存,然后在写入硬盘,效率高,但可能会数据丢失
  • 示例

    • /home/pubic *(rw,sync,all_squash)意义:服务器共享/home/public目录中的数据,所有人都可访问,可读可写,同步传输,账户映射为

    • /home/public 192.168.48.131/24(ro,root_squash,sync)意义:服务器共享/home/public目录中的数据,只允许192.168.48.131主机访问,方式为只读,客户端root账户映射为服务端的nobody,同步读写

    • /home/public 192.168.48.0/24(rw,all_squash,anonuid=2000,auongid=2000)意义:服务器共享/home/public目录中的数据,允许192.168.48.0网段所有主机访问,方式为可读可写,账户映射为nobody,uid为2000,gid为2000

实验1

  • 建立NFS服务器,使客户端顺序共享数据

  • 第一步:服务端及客户端的准备工作

    [root@server ~]# sentenforce 0
    [root@server ~]# systemctl stop firewalld
    [root@server ~]# dnf install nfs-utils -y # 服务端及客户端都安装

  • 第二步:服务端建立共享文件目录,并且设置权限

    [root@server ~]# mkdie /nfsfile
    [root@server ~]#echo "welcome to www.openlab.com" > nfsfile/readme
    [root@server ~]# chomd -Rf 777 /nfsfile

  • 第三步:服务端编辑配置文件

    [root@server ~]# vim /etc/exports 
    /nfsfile 192.168.48.131/24(rw,sync,all_squash)

  • 第四步:服务端先启动RPC服务,再启动nfs服务

    [root@server ~]# systemctl start rpcbind
    [root@server ~]# systemctl start nfs-server
    [root@server ~]# systemctl enable rpcbind
    [root@server ~]# systemctl enable nfs-server
    Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
    # 注意:若systemctl start  rpcbind后报错,显示启动失败,应先停止服务,在重启服务
    [root@server ~]# systemctl stop rpcbind
    [root@server ~]# systemctl start  rpcbind

  • 第五步:客户端使用本地挂在方式访问共享目录

    • 先查询有哪些远程共享目录可用

      [root@node1 ~]# showmount -e 192.168.48.130   # 别忘了安装nfs-utils
      # -e 表示显示服务器共享信息列表

    • 新建本地挂载目录

      [root@node1 ~]# mkdir /nfs1 
      # 使用mount远程挂载命令挂载服务器的目录到客户端本地目录,-t nfs 表示使用的文件系统类型
      [root@node1 ~]# mount -t nfs 192.168.48.130:/nfsfile/nfs1
      [root@node1 ~]# cd /nfs1 
      [root@node1 nfs1]#
      readme
      [root@node1 nfs1]# cat readme
      welcome to www.openlab.com
      [root@node1 nfs1]# cd   ~

  • 第六步:客户端使用开机挂载实现永久挂载

    [root@node1 ~]# vim /etc/fstab  # 编辑开机挂载配置文件,最后一行添加如下内容
    192.168.48.130:/nfsfile /nfs1 nfs defaules 0
    0
    [root@node1 ~]# mount -a
    [root@node1 nfs1]# df  -h   # 查看挂载信息
    文件系统                    容量  已用  可用 已用% 挂载点
    devtmpfs                    4.0M     0  4.0M    0% /dev
    tmpfs                       714M     0  714M    0% /dev/shm
    tmpfs                       286M  4.2M  282M    2% /run
    tmpfs                       4.0M     0  4.0M    0% /sys/fs/cgroup
    /dev/mapper/openeuler-root   27G  1.6G   24G    7% /
    tmpfs                       714M     0  714M    0% /tmp
    /dev/sda1                   974M  151M  756M   17% /boot
    192.168.48.130:/nfsfile      27G  1.6G   24G    7% /nfs1

NFS账户映射

实验2:
  • 基于上例,将/nfsfile权限修改后,查看客户端是否可以访问成功,是否可以修改数据

    # 定位服务端
    [root@server ~]# cat  /etc/exports   # 确认是否为rw可读可写的权限
    [root@server ~]# cd /nfsfile
    [root@server nfsfile]# ll     # 查看原有权限
    总用量 4
    -rwxrwxrwx 1 root   root   27  6月  1 14:43 readme
    -rw-r--r-- 1 nobody nobody  0  6月  1 14:56 test1.txt
    [root@server nfsfile]# cd  ~   
    [root@server ~]# chmod  -Rf  444  /nfsfile  # 设置新权限,没有wx
    [root@server ~]# ll  -d  /nfsfile/
    dr--r--r-- 2 root root 37  6月  1 14:56 /nfsfile/
    [root@server ~]# ll    /nfsfile/
    总用量 4
    -r--r--r-- 1 root   root   27  6月  1 14:43 readme
    -r--r--r-- 1 nobody nobody  0  6月  1 14:56 test1.txt
    ​
    ​
    # 定位客户端
    [root@node1 ~]# cd  /nfs1   
    -bash: cd: /nfs1: 权限不够
    ​
    # 显示无权限,即使服务端exports中有rw权限最后还是以文件系统权限为准

实验3

  • 客户端访问服务端,默认使用服务端的账户映射为nobody,uid与gid均为65534,其值可以修改

    # 定位服务端
    [root@server ~]# chmod  -Rf  777  /nfsfile   # 先将上例的权限修改回原样
    [root@server ~]# ll  -d  /nfsfile/
    drwxrwxrwx 2 root root 37  6月  1 14:56 /nfsfile/
    ​
    [root@server ~]# vim  /etc/exports   # 修改映射方式为
    /nfsfile        192.168.48.131/24(rw,sync,root_squash)
    ​
    [root@server ~]# systemctl restart  rpcbind  
    [root@server ~]# systemctl restart  nfs-server
    ​
    exporting 192.168.48.131/24:/nfsfile
    ​
    # 定位客户端
    [root@node1 ~]# cd  /nfs1
    [root@node1 nfs1]# touch  test2.txt
    [root@node1 nfs1]# ll
    总用量 4
    -rwxrwxrwx 1 root   root   27  6月  1 14:43 readme
    -rwxrwxrwx 1 nobody nobody  0  6月  1 14:56 test1.txt
    -rw-r--r-- 1 nobody nobody  0  6月  1 15:15 test2.txt  # root映射为nobody
    [root@node1 nfs1]# su  fox
    [fox@node1 nfs1]$ touch  test3.txt
    [fox@node1 nfs1]$ ll
    总用量 4
    -rwxrwxrwx 1 root   root   27  6月  1 14:43 readme
    -rwxrwxrwx 1 nobody nobody  0  6月  1 14:56 test1.txt
    -rw-r--r-- 1 nobody nobody  0  6月  1 15:15 test2.txt
    -rw-rw-r-- 1 fox    fox     0  6月  1 15:16 test3.txt  # fox映射为fox
    ​
    # 定位服务端
    [root@server ~]# vim  /etc/exports
    /nfsfile 192.168.48.131/24(rw,sync.all_squash,anoundi=2000,anongid=2000)
    ​
    ​
    [root@server ~]# systemctl restart rpcbind
    [root@server ~]# systemctl restart nfs-server
    ​
    # 定位客户端
    [root@node1 nfs1]# touch  test4.txt
    [root@node1 nfs1]# ll
    总用量 4
    -rwxrwxrwx 1 root   root   27  6月  1 14:43 readme
    -rwxrwxrwx 1 nobody nobody  0  6月  1 14:56 test1.txt
    -rw-r--r-- 1 nobody nobody  0  6月  1 15:15 test2.txt
    -rw-rw-r-- 1 fox    fox     0  6月  1 15:16 test3.txt
    -rw-r--r-- 1   2000   2000  0  6月  1 15:19 test4.txt  # 自定义udi及gid
    [root@node1 nfs1]# cd  ~

autofs自动挂载服务

产生原因

  • 在一般NFS文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可以在 /etc/fstab中设置开机时自动挂载,也可以在登录系统后手动利用mount来挂载。

  • 由于网络的问题,NFS服务器与客户端的连接不会一直存在,当我们挂载了NFS服务器之后,任何一方脱机都可能造成另外一方等待超时,如果在资源挂载后长期不使用,也会造成服务器硬件资源的浪费。

  • 为了解决这样的问题,就出现了下面的想法:

    • 当客户端在有使用NFS文件系统的需求时才让系统自动挂载。

    • 当NFS文件系统使用完毕后(autofs默认自动卸载时间为300s即5分钟),让NFS自动卸载。

  • autofs 自动挂载服务可以帮我们解决这一问题,该服务是运行在客户端的一种 Linux 系统守护进程,在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。

安装

  • 安装

    [root@node1 ~]# dnf install autofs -y

配置文件分析

  • 配置文件路径:/etc/auto.master

  • 作用:处于生产环境中的 Linux 服务器,一般会同时管理许多设备的挂载操作。如果把这些设备挂载信息都写入到 autofs 服务的主配置文件中,无疑会让主配置文件臃肿不堪,不利于服务执行效率,也不利于日后修改里面的配置内容,则需要将挂载的设备独立配置形成子文件,主配置文件只存储配置挂载设置的文件名

  • /etc/auto.master 文件内容格式:挂载父目录,子配置文件

    • 挂载目录:不需要事先存在,因为autof会主动建立该目录

    • 子配置文件:文件名可自定义

    • 例:/nfs /etc/auto.nfs

  • 子配置文件由自己创建,内容格式:

    • 本地挂载子目录 [-挂载参数] 服务器地址:目录

    • 例:testmnt 192.168.48.130:/data

    • 挂载参数:

      参数功能
      fg/bg当执行挂载时,该挂载行为会在前台(fg)还是后台(bg)执行,若在前台执行,则mount会持续尝试挂载,直到成功或time out为止;若为后台执行,则mount会在后台持续多次进行mount,而不会影响到前台的程序运行。
      soft/hardhard表示当两者之间的任何一台主机脱机,则RPC会持续地呼叫,直到对方恢复连接为止。如果是soft的话,那RPC会在time out后重复呼叫,而非持续呼叫
      intr当使用上面提到的hard方式挂载时,若加上intr这个参数,则当RPC持续呼叫时,该次的呼叫是可以被中断的
      rsize/wsize读出(rsize)与写入(wsize)的区块大小。这个设置值可以影响客户端与服务器

实验4

  • 服务器端创建共享目录,哭护短实现自动挂载

  • 第一步:服务端及客户端都恢复快照,关闭安全软件,安装软件

    # 恢复快照
    
    [root@server ~]# setenforce  0
    ​
    [root@server ~]# systemctl stop  firewalld
    ​
    [root@server ~]# dnf install nfs-utils -y
    ​
    [root@node1 ~]# dnf install nfs-utils autofs -y

  • 第二步:定位服务端,编辑nfs配置文件,新建共享目录,并设置权限

    [root@server ~]# mkdir /data 
    [root@server ~]# vim /etc/exports
    /data *(rw,sync,all_squash)
    [root@server ~]# chmod -Rf 777/data
    [root@server ~]# echo "this is test" > /data/file.txt
    [root@server ~]# ls /data
    file.txt

  • 第三步:定位服务端,启动服务,必须先启动,rpcbind服务

    [root@server ~]# systemctl start rpcbind
    [root@server ~]# systemctl start nfs-server
    [root@server ~]# systemctl enable rpcbind
    [root@server ~]# systemctl enable nfs-server

  • 第四步:定位客户端,编辑自动挂载配置文件

    # 设计自动挂载本地目录:/nfs/testmnt
    [root@node1 ~]# vim /etc/auto.master # 编辑自动挂载配置文件,定位第7行,输入
    /nfs /etc.auto.nfs
    # /nfs为本地挂载路径的父目录,可以不用创建,autofs回自动创建,auto.nfs为自配置文件,名称自定义
    ​
    # 查看共享信息
    [root@node1 ~]#  showmount -e 192.168.48.130
    Export list for 192.168.48.130:
    /data *
    ​
    # 编辑自动挂载的子配置文件
    [root@node1 ~]# vim /etc/auto.nfs # 书写本地挂载目录的子目录及远程共享目录
    testmnt 192.168.48.130:data

  • 第五步:重启服务

    [root@node1 ~]# systemctl start autofs
    [root@node1 ~]# systemctl enable autofs

  • 第六步:定位客户端,测试

    [root@node1 ~]# df -h #查看挂载信息
    文件系统               容量  已用  可用 已用% 挂载点
    devtmpfs               4.0M     0  4.0M    0% /dev
    tmpfs                  968M     0  968M    0% /dev/shm
    tmpfs                  388M  9.4M  378M    3% /run
    /dev/mapper/rhel-root   16G  4.2G   12G   27% /
    /dev/nvme0n1p1         395M  235M  160M   60% /boot
    tmpfs                  194M   92K  194M    1% /run/user/0
    /dev/sr0               8.5G  8.5G     0  100% /run/media/root/RHEL-9-1-0-BaseOS-x86_64
    [root@node1 ~]# cd /nfs # 进入本地挂载目录,会自动新建
    [root@node1 nfs]# ls
    [root@node1 nfs]# cd testmnt  # 进入本地挂载目录的下级目录,会触发自动挂载
    [root@node1 testmnt]# ls
    file.txt
    ​
    [root@node1 ~]# df -h
    文件系统               容量  已用  可用 已用% 挂载点
    devtmpfs               4.0M     0  4.0M    0% /dev
    tmpfs                  968M     0  968M    0% /dev/shm
    tmpfs                  388M  9.4M  378M    3% /run
    /dev/mapper/rhel-root   16G  4.2G   12G   27% /
    /dev/nvme0n1p1         395M  235M  160M   60% /boot
    tmpfs                  194M   92K  194M    1% /run/user/0
    /dev/sr0               8.5G  8.5G     0  100% /run/media/root/RHEL-9-1-0-BaseOS-x86_64
    192.168.48.130:/data    16G  4.2G   12G   27% /nfs/testmnt

实验5

  • 本地自动挂载光盘

  • 第一步:定位服务端恢复快照,关闭安全软件,安装软件

    # 恢复快照
    [root@server ~]# setenfore 0
    ​
    [root@server ~]# systemctl stop firewalld
    ​
    [root@server ~]# dnf install autofs -y

  • 第二步修改autofs主配置文件

    # 设计本地自动挂载目录路径:/media/cdrom
    ​
    # 定位第7行,输入本地挂载路径的父目录和自配置文件
    [root@server ~]# vim /etc/auto.master
    /media /etc/iso.aa

  • 第三步:编写autofs子配置文件

    [root@server ~]# vim /etc/iso.aa
    cdrom  -fstype=iso9660,ro,nosuid,nodev  :/dev/sr0   # 冒号前有空格
    ​
    # 注意cdrom为挂载路径/media/cdrom的子目录
    # -ftype:为文件系统格式
    # iso9660:为光盘设备格式
    # ro:以只读模式挂载文件系统
    # nodev:不解析文件系统上的块特殊设备
    # nosuid:禁止suid操作和设定sgid位(SUID 是 Set User ID, SGID 是 Set Group ID的意思)

  • 第四步:重启

    [root@server ~]# systemctl start autofs
    [root@server ~]# systemctl enable autofs
    Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.

  • 第五步:测试

    [root@server ~]# df -h
    文件系统               容量  已用  可用 已用% 挂载点
    devtmpfs               4.0M     0  4.0M    0% /dev
    tmpfs                  968M     0  968M    0% /dev/shm
    tmpfs                  388M  9.7M  378M    3% /run
    /dev/mapper/rhel-root   16G  4.2G   12G   27% /
    /dev/nvme0n1p1         395M  235M  160M   60% /boot
    tmpfs                  194M  104K  194M    1% /run/user/0
    /dev/sr0               8.5G  8.5G     0  100% /run/media/root/RHEL-9-1-0-BaseOS-x86_64
    ​
    [root@server ~]# cd /media/
    [root@server media]# cd cdrom    # 触发自动挂载
    [root@server cdrom]# ls
    AppStream  EFI   extra_files.json  images    media.repo                  RPM-GPG-KEY-redhat-release
    BaseOS     EULA  GPL               isolinux  RPM-GPG-KEY-redhat-beta
    [root@server cdrom]# df -h
    文件系统               容量  已用  可用 已用% 挂载点
    devtmpfs               4.0M     0  4.0M    0% /dev
    tmpfs                  968M     0  968M    0% /dev/shm
    tmpfs                  388M  9.7M  378M    3% /run
    /dev/mapper/rhel-root   16G  4.2G   12G   27% /
    /dev/nvme0n1p1         395M  235M  160M   60% /boot
    tmpfs                  194M  104K  194M    1% /run/user/0
    /dev/sr0               8.5G  8.5G     0  100% /media/cdrom   # 已经自动挂载

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

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

相关文章

Xinstall助力手游推广,打破传统营销方式

随着移动互联网的普及,手游市场日益繁荣,手游推广方式也日新月异。在这个竞争激烈的市场中,如何有效地推广手游,吸引更多的用户,成为了开发者和广告主关注的焦点。而Xinstall作为国内专业的App全渠道统计服务商&#x…

这份详细的智慧校园建设方案,赶紧收藏

高等教育信息化是促进高等教育改革创新和提高质量的有效途径,是教育信息化发展的创新前沿。进一步加强基础设施和信息资源建设,重点推进信息技术与高等教育的深度融合,能促进教育内容、教学手段和方法现代化,创新人才培养、科研组…

C语言进阶|链表经典OJ题

✈移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 方法一: 遍历链表找到所有等于val的节点,再执行删除操作删除这些节点。 方法二: …

小程序中如何绑定会员个人信息

在小程序中,用户可以在个人中心页面来设置用户名、头像、手机号码和身份证号码等个人信息。以下是具体的操作步骤: 1. 进入个人中心->账户设置。在个人中心页面,点击设置按钮,即可进入账户设置页面。在这个页面进行账号信息设…

百万人都在求的网络安全学习路线,渗透漏洞防御总结(附图)

前言 不折腾的网络安全,和咸鱼有什么区别 目录 二、 前言三 、同源策略 3.1 什么是同源策略 3.2 为什么需要同源策略四 、XSS 4.1 概览 4.2 介绍 4.3 防御五 、CSRF 5.1 概览 5.2 介绍 5.3 防御六、 SQL 注入七 、流量劫持 7.1 DNS 劫持 7.2 HTTP 劫持…

某知乎APP - X-Zse-96

⚠️前言⚠️ 本文仅用于学术交流。 学习探讨逆向知识,欢迎私信共享学习心得。 如有侵权,联系博主删除。 请勿商用,否则后果自负。 接口网址 app 版本: 8.10.0 aHR0cHM6Ly93d3cuemhpaHUuY29tL2FwaS92NC9zZWFyY2hfdjM 加密位置分析 > …

MySQL从入门到高级 --- 3.DML基本操作

文章目录 第三章:3.基本操作 - DML3.1 数据插入3.2 数据修改3.3 数据删除3.4 练习 第三章: 3.基本操作 - DML DML:数据操作语言,用来对数据中表的数据记录进行更新 关键字: insert 插入 delete 删除 update 更新 …

CLIP是啥?

论文地址:https://arxiv.org/pdf/2103.00020v1 代码地址:GitHub - openai/CLIP: CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image 题目解读 Transferable Visual model指不使用特定数据集的数…

【代码随想录刷题记录】LeetCode844比较含退格的字符

题目地址 1. 思路 1.1 基本思路 拿到这个题,我们要单独写一个函数去将退格后的字符串结果返回出来(生成退格后的真实的字符串),我还是想魔改 O ( n ) O(n) O(n)时间复杂度的删除数组元素的算法:【代码随想录刷题记录…

认识Linux及一些基本

目录 linux简介: 1. 发展史 UNIX发展的历史 Linux发展历史 2. 开源 3. 企业应用现状 Linux在服务器领域的发展 Linux在桌面领域的发展 Linux在移动嵌入式领域的发展 Linux在云计算/大数据领域的发展 4. 发行版本 Debian Ubuntu 红帽企业级Linux Cent…

LLDP简介

LLDP简介 定义 LLDP(Link Layer Discovery Protocol)是IEEE 802.1ab中定义的链路层发现协议。LLDP是一种标准的二层发现方式,可以将本端设备的管理地址、设备标识、接口标识等信息组织起来,并发布给自己的邻居设备,邻…

国产Sora诞生!清华团队发布Vidu大模型,可直接生成16秒视频

大模型之争已从单模态转向多模态。 4月27日,在2024中关村论坛年会未来人工智能先锋论坛上,清华大学联合北京生数科技有限公司正式发布了文生视频大模型——Vidu。 在会议上,清华大学人工智能研究院副院长、生数科技首席科学家朱军对外展示了…

溪谷软件:游戏联运有多简单?

游戏联运,即游戏联合运营,是一种游戏运营模式,涉及到多个平台或公司共同推广和运营同一款游戏。对于开发者而言,游戏联运的简化程度可能因具体情况而异,但以下是一些因素,使得游戏联运在某种程度上变得更加…

​水滴式饲料粉碎机:创新设计与卓越性能的完美结合

水滴式饲料粉碎机是一种新型的饲料加工设备,其新颖的设计理念和工作性能受到了广大养殖户和饲料生产厂家的青睐。水滴式饲料粉碎机之所以受到如此广泛的关注,不仅是因为其G效、节能的特点,更是因为其新颖的结构设计,使得饲料加工过…

Cesium.js(3):Cesium查看器、场景、实体、数据源介绍

1 Cesium的四大类说明 1.1 Viewer查看器类 Viewer是cesium的查看器类,第一个参数是地图主窗口DIV的容器ID,第二个参数option是Viewer的可选设置参数,包含图层、地形时间系统等参数,种类多样,主要作用是对视口中各个组…

【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码

文章目录 一、游戏运行效果二、代码实现2.1 项目搭建2.2 加载我方坦克2.3 加载敌方坦克2.4 添加爆炸效果2.5 坦克大战之音效处理 三、完整代码 一、游戏运行效果 二、代码实现 坦克大战游戏 2.1 项目搭建 本游戏主要分为两个对象,分别是我方坦克和敌方坦克。用户可…

数据结构复习指导之数组和特殊矩阵

文章目录 数组和特殊矩阵 考纲内容 复习提示 前言 1.数组的定义 2.数组的存储结构 3.特殊矩阵的压缩存储 3.1对称矩阵 3.2三角矩阵 3.3三对角矩阵 4.稀疏矩阵 5.知识回顾 数组和特殊矩阵 考纲内容 (一)栈和队列的基本概念 (二&a…

数据结构六:线性表之顺序栈的设计

目录 一、栈的应用场景 二、栈的基本概念和结构 2.1 栈的基本概念 2.2 栈的结构 2.3 栈的实现方式 三、顺序栈的接口函数实现 3.0 顺序栈的概念和结构 3.1 顺序栈的接口函数 3.2 顺序栈的设计(结构体) 3.3 顺序栈的初始化 3.4 入栈&#x…

Python转换文本文件为PDF文档,绘制文本到PDF文档页面

文本文件因其轻便、易编辑的优势,常用于日常文字记录与数据交换;而PDF文档则以高保真、格式稳定和良好的阅读体验,成为正式报告、文献发布等场景的首选。将文本文件转为PDF,在PDF内精准绘制文本,旨在兼顾内容的规范呈现…

云计算革新:以太网 Scale-UP 网络为 GPU 加速赋能

谈谈基于以太网的GPU Scale-UP网络 Intel Gaudi-3 采用 RoCE 互联技术,促进了 Scale-UP 解决方案。业界专家 Jim Keller 倡导以太网替代 NVLink。Tenstorrent 成功应用以太网实现片上网络互联。RoCE 和以太网已成为互联解决方案的新兴趋势,为高性能计算提…