当前位置: 首页 > news >正文

【2023年】云计算金砖牛刀小试2

A场次题目:Openstack 平台部署与运维

control172.17.31.10
compute172.17.31.20 compute

任务1 私有云平台环境初始化

1.初始化操作系统 使用提供的用户名密码,登录竞赛云平台。根据表 1 中的 IP 地址规划,设置各服务器节点的 IP 地址,确保网络正常通信,设置控制节点主机名为 Controller,计算节点主机名为 Compute,并修改 hosts 文件将 IP 地址映射为主机名, 关闭防火墙并设置为开机不启动,设置 SELinux 为 Permissive 模式并设置永久 关闭。请查看控制节点和计算节点主机名,使用命令查看 SELinux 状态,使用 head 命令、tail 命令和 cut 命令提取出永久关闭 SELinux 的关键信息。 将以上命令及返回结果提交到答题框

配置host

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6172.17.31.10	controller
172.17.31.20	compute

关闭防火墙并设置为开机不启动

systemctl stop firewalld
systemctl disable firewalld

关闭selinux并永久关闭

setenforce 0
vi /etc/selinux/configSELINUX=Permissive

使用命令查看selinux状态

getenforceDisabled

2.挂载安装光盘镜像 将提供的 CentOS-7-x86_64-DVD-1804.iso 和 chinaskills_cloud_iaas.iso 光盘镜像上传到 Controller 节点 /root 目录下,然后在 /opt 目录下使用一条 命令创建/centos 目录和/iaas 目录,并将镜像文件 CentOS-7-x86_64-DVD-1804. iso 挂载到 /centos 目录下,将镜像文件 chinaskills_cloud_iaas.iso 挂载到 /iaas 目录下。 请将以上命令及返回结果返回到答题框。【1 分】

 mkdir /opt/centosmkdir /opt/iaasmount chinaskills_cloud_iaas.iso /opt/iaasmount CentOS-7-x86_64-DVD-1804.iso /opt/centos

3.搭建文件共享服务器在Controller节点上安装 vsftp 服务器设置开机自启动,请将以上命令 及返回结果提交到答题框。【0.5 分】

#在controller节点
yum install -y vsftpd
vi /etc/vsftpd/vsftpd.confanon_root=/opt/
systemctl start vsftpd
systemctl enable vsftpd

4.设置 yum 源

将 ftp 仓库设置为 /opt/,为 controller 节点设置本地 yum 源,yum 源文件名为 local.repo;为 compute 配置 ftp 源,yum 源文件名称为 ftp.repo,其中ftp服务器地址为 controller 节点 IP.请将两个节点的 yum 源文件内容提交到答题框。【0.5 分】

#在controller节点mv /etc/yum.repos.d/* /etc/yum
vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo#在compute节点
mv /etc/yum.repos.d/* /etc/yum
vi /etc/yum.repos.d/ftp.repo
[centos]
name=centos
baseurl=ftp://172.17.31.10/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://172.17.31.20/iaas/iaas-repo

5.部署时间同步服务器

在 Controller 节点上部署 chrony 服务器,允许其他节点同步时间,启动服务并设置为开机启动;在 compute 节点上指定 controller 节点为上游 NTP 服务器,重启服务并设为开机启动。

请在控制节点上使用 chronyc 命令同步控制节点的系统时间。【1 分】

#在centroller节点

 vi /etc/chrony.conf# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server controller iburst
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3# Enable kernel synchronization of the real-time clock (RTC).
rtcsync# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2# Allow NTP client access from local network.
#allow 192.168.0.0/16# Serve time even if not synchronized to a time source.
#local stratum 10# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys# Specify directory for log files.
logdir /var/log/chrony# Select which information is logged.
#log measurements statistics tracking
allow 172.17.31.0/24
local stratum 10systemctl restart chronyd
systemctl enable chronyd

在compute节点

vi /etc/chrony.conf# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server controller iburst
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3# Enable kernel synchronization of the real-time clock (RTC).
rtcsync# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2# Allow NTP client access from local network.
#allow 192.168.0.0/16# Serve time even if not synchronized to a time source.
#local stratum 10# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys# Specify directory for log files.
logdir /var/log/chrony# Select which information is logged.
#log measurements statistics trackingsystemctl restart chronyd
systemctl enable chronyd

任务二 Openstack 搭建任务

1.修改变量文件

在控制节点和计算节点上分别安装 iaas-xiandian 软件包,修改配置脚本文件中基本变量(配置脚本文件为/etc/xiandian/openrc.sh)。修改完成后使用命令生效该变量文件,然后执行 echo $INTERFACE_IP 命令。

请将命令和返回结果提交到答题框。【0.5 分】

在controller节点

yum install -y iaas-xiandianvi /etc/xiandian/openrc.sh#tips: :%s/#// 去除#:%s/PASS=/PASS=000000source /etc/xiandian/openrc.sh
echo $INTERFACE_IP

在comopute节点

yum install -y iaas-xiandian#登录到controller
scp /etc/xiandian/openrc.sh root@172.17.31.20:/etc/xiandian/openrc.sh修改INTERFACE_IP即可
source /etc/xiandian/openrc.sh
echo $INTERFACE_IP

2.搭建数据库组件

使用提供的脚本框架 iaas-install-mysql.sh 填充脚本,在 controller 节点上安装 mariadb、mencached、rabbitmq 等服务并完成相关配置。完成后修改配置文件将 mencached 最大连接数修改为 2048。

请将修改后的配置文件提交到答题框。【1 分】

在controller节点

iaas-install-mysql.sh#若配置文件忘记位置,可以通过查看iaas-install-mysql.sh查看位置
vi /etc/sysconfig/memcached
MAXCONN="2048"

3.搭建认证服务组件

使用提供的脚本框架 iaas-install-keystone.sh 填充脚本,在 controlle r 节点上安装 keystone 服务并完成相关配置。完成后使用 openstack 命令请求 一个 token。

请将以上命令和返回结果提交到答题框。【1 分】

在controller节点

iaas-install-keystone.sh
openstack token issue

4.搭建镜像服务组件

使用提供的脚本框架 iaas-install-glance.sh 填充脚本,在 controller 节点上安装 glance 服务并完成相关配置。完成后请将 cirros-0.3.4-x86_64-disk.img 上传到控制节点的 /root 目录下,然后使用 openstack 命令将该镜像上传到 openstack 平台镜像命名为 cirros。

请将镜像上传的操作命令和返回结果提交到答题框。【1 分】

在controller节点

iaas-install-glance.sh
openstack image create --disk-format qcow2 --container-format bare  --shared cirros </root/cirros-0.3.4-x86_64-disk.img 

5.搭建计算服务组件

使用提供的脚本框架 iaas-install-nova-controller.sh 和 iaas-install-nova-compute.sh 填充脚本,在 controller 和 compute 节点上安装 nova 服务并完成配置。完成后请将控制节点的计算资源也加入集群。然后使用 openstack 命令列出能提供计算资源的节点。

将列出计算资源的命令和返回结果提交到答题框。【1.5 分】

在controller节点

iaas-install-nova-controller.sh

在compute节点

iaas-install-nova-compute.sh

controller:

#将控制节点的计算资源也加入集群
把compute节点的名称和IP都改成controller节点的名称和IP
vi /etc/iaas-openstack/openrc.sh
HOST_IP_NODE=172.17.31.10
HOST_NAME_NODE=controlleriaas-install-nova-compute.sh
#建议执行完毕后改回

修改nova配置

cat /etc/nova/nova.conf
[libvirt]
virt_type=qemu		##在[libvirt]下添加此行即可

6.搭建网络组件并初始化网络

使用提供 的脚本框架 iaas-install-neutron-controller.sh 和 iaas-install-neutron-compute.sh,填充脚本,在 controller 和 compute 节点上安装 neutron 服务并完成配置。创建云主机外部网络 ext-net,子网为 ext-subnet,云主机浮动 IP 可用网段为 172.18.x.100~172.18.x.200,网关为 172.18.x.1。创建云主机内部网络 int-net1,子网为 int-subnet1,云主机子网 IP 可用网段为 10.0.0.100~10.0.0.200,网关为 10.0.0.1;创建云主机内部网络 int-net2,子网为 int-subnet2,云主机子网 IP 可用网段为 10.0.1.100 ~ 10.0.1.200,网关为 10.0.1.1。添加名为 ext-router 的路由器,添加网关在 ext-net 网络,添加内部端口到 int-net1 网络,完成内部网络 int-net1 和外部网络的连通。

请使用 openstack 命令完成以下任务,完成后将命令和返回结果提交到答题框。【4 分】

controller

iaas-install-neutron-controller.sh

compute

iaas-insta ll-neutron-compute.sh

创建网络(controller)

#创建外部网络
openstack network create --external  --provider-physical-network provider --provider-network-type flat   ext-net
#给外部网络绑定ip
openstack subnet create  --network ext-net --subnet-range 172.18.31.0/24 --gateway 172.18.31.1 --allocation-pool start=172.18.31.100,end=172.18.31.200 --dhcp  ext-subnet
#创建int-net1(云主机子网 IP 可用网段为 10.0.0.100~10.0.0.200,网关为 10.0.0.1)
openstack network create --internal int-net1
#创建int-net1网段int-subnet1
openstack subnet create --subnet-range 10.0.0.0/24  --gateway 10.0.0.1 --dhcp --allocation-pool start=10.0.0.100,end=10.0.0.200  --network int-net1 int-subnet1
#创建int-net2(云主机子网 IP 可用网段为 10.0.1.100 ~ 10.0.1.200,网关为 10.0.1.1)
openstack network create --internal int-net2
#创建int-net2网段
openstack subnet create --subnet-range 10.0.1.0/24  --gateway 10.0.1.1 --dhcp --allocation-pool start=10.0.1.100,end=10.0.1.200  --network int-net2 int-subnet2#添加路由ext-router
openstack router create ext-router
openstack router set --enable --enable-snat --external-gateway ext-net ext-router
openstack router add subnet ext-router int-subnet1

7.搭建图形化界面

使用提供的脚本框架 iaas-install-dashboard.sh,填充脚本,在 controller 节点上安装 dashboard 服务并完成相关配置。

请使用 curl 指令获取 dashboard 首页信息,将获取到的首页信息提交到答 题框。【1 分】

controller

iaas-install-dashboard.shcurl -L http://192.168.100.10/dashboard

任务 3 OpenStack 运维任务

1.用户管理

在 keystone 中创建用户 testuser,密码为 password。创建好之后,使用命令修改 testuser 密码为 000000,并查看 testuser 的详细信息。添加将该 用户添加到 admin 项目并赋予普通用户权限,完成后测试登录。

使用 testuser 用登录系统完成后截图并提交到答题框。【1 分】

openstack user create  testuser  --password password --domain demo
openstack user set testuser --password 000000
openstack user show testuser
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | ff1e0a9d790046209bd22307ca565a8e |
| enabled             | True                             |
| id                  | 79ab69675e6a454a83fc1f13bd884315 |
| name                | testuser                         |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
openstack role add user --user testuser --project admin 

2.服务查询

使用命令列出服务目录和端点,查看 glance 服务的端点。将以上命令和返

回结果提交到答题框。【0.5 分】

openstack service list #查看服务目录
openstack endpoint list #查看服务端点
openstack endpoint list | grep glance

3.镜像管理

登录 controller 节点,使用 glance 相关命令,上传镜像,源使用 CentOS_6.5_x86_64_XD.qcow2,名字为 testone,然后使用 openstack 命令修改这个镜像名改为 examimage,然后给这个镜像打一个标签,标签名字为 lastone 改完后使用 openstack 命令查看镜像列表。

将以上命令和返回结果提交到答题框。【2 分】

glance image-create --name testone --disk-format qcow2 --container bare --file /opt/images/CentOS_6.5_x86_64_XD.qcow2 openstack image set --name examiage --tag lastone testone

4.后端配置文件管理

进入到glance 后端存储目录中,使用 qemu 命令查看任意的一个镜像信息。使用 du 命令查看 nova 主配置文件大小。

将以上命令和返回结果提交到答题框。【0.5 分】

cd /var/lib/glance/images/
#qemu-img info <文件名称>
qemu-img info 6ca6669e-cc71-4f51-becf-b5db53c212f1

5.存储服务管理

创建一个卷类型,然后创建一块带这个卷类型标识的云硬盘,查询该云硬盘的详细信息。将该云硬盘挂载到虚拟机中,将该云硬盘格式化为 xfs。创建一个文件文件名为工位号内容为工位号,然后将该云硬盘卸载,使用 openstack 命令将该云硬盘修改为只读状态,再次挂载后查看是否存在原始文件,然后再次向该云硬盘中创建一个文件,文件名为工位号_02。

将返回结果及解题过程提交到答题框。【2 分】

#创建卷类型openstack volume type create lvm1
#创建卷openstack volume create --size 10 --type lvm1 juan1
#查看卷详细信息openstack volume show juan1 
#将云硬盘挂载到虚拟机中
openstack server add volume centos juan1
#将云硬盘格式化为xfs
mkfs.xfs /dev/vdb
#挂在创建文件
mount /dev/vdb /mnt
touch /mnt/31
umount /mnt
#云硬盘卸载
openstack server remove volume centos juan1
#设置为只读
openstack volume set juan1 --read-only
#将云硬盘挂载到虚拟机中
openstack server add volume centos juan1
#挂在创建文件
mount /dev/vdb /mnt
touch /mnt/31_02
显示不成功

6.存储服务管理

使用命令创建一个 5GB 的云硬盘,名称为 disk-2,将云硬盘挂载到云虚拟机内,然后格式化为 ext4,挂载到虚拟机的 /mnt/ 目录下,使用 df -h 将命令和返回信息提交到答题框。将该云硬盘使用命令卸载,使用命令将该云硬盘扩容到 10GB,使用命令将云硬盘挂载到云主机上,将命令及返回信息提交到答题框。进入云主机使用命令扩容文件系统,扩容后再次挂载到 /mnt/使用 df -hT 命令并将命令和返回信息提交到答题框。【2 分】。

#创建云硬盘
openstack volume create --size 5 'disk-2'
#挂载
openstack server add volume centos disk-2
#格式化
mkfs.ext4 /dev/vdb
mount /dev/vdb /mnt
df-h
#卸载
umount /mnt
openstack server remove volume centos disk-2
#扩容
openstack volume set --size 10 'disk-2'
#挂载
openstack server add volume centos disk-2
#格式化
mkfs.ext4 /dev/vdb
mount /dev/vdb /mnt
df -hT

7.对象存储管理

使用 swift 相关命令,创建一个容器,然后往这个容器中上传一个文件(文件可以自行创建),上传完毕后,使用命令查看容器。

将以上命令和返回结果提交到答题框。【0.5 分】

swift post container
swift upload  container /root/cirros-0.3.4-x86_64-disk.img
swift list container

8.安全组管理

使用命令创建名称为 group_web 的安全组该安全组的描述为工位号,为该安全组添加一条规则允许任意 ip 地址访问 web 流量,完成后查看该安全组的详细信息。

将以上命令和返回结果提交到答题框。【2 分】

openstack security group create group_web --description 31
openstack security group rule create group_web --protocol tcp --dst-port 80:80 --remote-ip 0.0.0.0/0
openstack security group rule create group_web --protocol tcp --dst-port 443:443 --remote-ip 0.0.0.0/0
openstack security group show group_web

9.网络管理

使用命令将int-net1网络设置为共享,然后查看int-net1网络的详细信息。

将命令和返回信息提交到答题框。

openstack network set --share  int-net1

10.网络管理

使用 dashboard 界面使用 centos7.5 镜像创建一台云主机,云主机命名为 test-01,使用命令查看浮动 IP 地址池,使用命令创建一个浮动 IP,然后将浮动IP 绑定到云主机上。

将命令和返回信息提交到答题框。【1 分】

openstack floating ip create ext-net
openstack server add floating ip test-01 172.18.31.118

11.虚拟机管理

使用 opentack 命令利用 centos7.5 镜像创建一台云主机,连接 int-net1 网 络,云主机名称为 test-02。创建成功后使用命令查看云主机详细信息,确定该云主机是处于计算节点还是控制节点。如果云主机处于控制节点上请将其冷迁移到计算节点,如果如果云主机处于计算节点上请将其冷迁移到控制节点。

本题全部流程请使用命令完成,请将全部命令和结果粘贴到答题框。【3 分】

一、冷迁移
1、在控制节点关闭虚拟机
2、在计算节点找到实例位置(/var/lib/nova/instances)
3、将计算节点的需要转移的实例文件copy到目标主机的相同位置下。
4、到目标主机,赋予实例权限
5、登录数据库更改mysql的host,node字段为新的物理主机名。
6、重启目标主机的nova-compute服务

#查看虚拟机在哪个节点
openstack service show test-02

相关文章:

【2023年】云计算金砖牛刀小试2

A场次题目:Openstack 平台部署与运维 control172.17.31.10compute172.17.31.20 compute任务1 私有云平台环境初始化 1.初始化操作系统 使用提供的用户名密码,登录竞赛云平台。根据表 1 中的 IP 地址规划,设置各服务器节点的 IP 地址,确保网络正常通信,设置控制节点主机名…...

python--将mysql建表语句转换成hive建表语句

1.代码 import json import sys import pymysqldef queryDataBase(tablename):# 连接数据库并查询列信息conn pymysql.connect(userroot, password123456, hosthadoop11)cursor conn.cursor()cursor.execute("SELECT column_name, data_type FROM information_schema.C…...

异步调用实践:Async,Future, TaskExecutor、EventListener

1. 异步调用概述 异步调用允许一个方法调用在不被当前线程阻塞的情况下继续执行&#xff0c;而调用者可以继续执行其他任务&#xff0c;直到异步操作完成。 在Spring Boot中&#xff0c;异步调用常用于提高应用的响应性和吞吐量&#xff0c;尤其是在处理长时间运行的任务时&a…...

Flask 异常处理

Flask 异常处理 使用 app.errorhandler 装饰器使用 app.handle_exception 装饰器使用 register_error_handler调试模式总结 在 Flask 应用中&#xff0c;异常处理是一个非常重要的部分&#xff0c;它可以帮助你管理运行时错误&#xff0c;提供友好的错误页面&#xff0c;以及记…...

【海思SS626 | 内存管理】海思芯片的OS内存、MMZ内存设置

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

linux crontab没有按照规则执行排查

配置了cron规则&#xff0c;但是一段时间后任务没有按预期执行&#xff0c;记录一次修复过程 检查crond服务 systemctl status crond规则正常 crontab -l脚本有执行权限 查看日志 第一种&#xff1a;journalctl journalctl -u crond | grep 03:00 -C 3-u 指定crond.serv…...

Cloudflare的D1使用技巧

总文档&#xff1a;https://developers.cloudflare.com/workers/wrangler/commands/#d1查询某个数据库中哪些命令占用资源最大&#xff1a; To find top 10 queries by execution count: npx wrangler d1 insights <database_name> --sort-typesum --sort-bycount --co…...

解决端口号被占用问题

第一种&#xff1a; 最简单有效的方法&#xff0c;重启一下电脑&#xff0c;占用此端口的程序就会释放端口。 第二种&#xff1a; 使用命令找到占用端口的程序&#xff0c;把它关闭。 1、打开运行窗口输入&#xff1a;CMD &#xff0c;进入命令窗口。 2、输入&#xff1a;n…...

如何在linux上部署zabbix监控工具

<1>搭建服务机 1&#xff09;首先我们先执行 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config ​ #然后我们再把防火墙开机自启关掉 马上生效 systemctl disable --now firewalld 2&#xff09;我们获得rpm包 rpm -Uvh https://mirrors.aliyun.com/…...

vulnhub系列:sp eric

vulnhub系列&#xff1a;sp eric 靶机下载 一、信息收集 nmap扫描存活&#xff0c;根据mac地址寻找IP nmap 192.168.23.0/24nmap扫描端口&#xff0c;开放端口&#xff1a;22、80 nmap 192.168.23.189 -p- -A -sV -Pndirb 扫描目录&#xff0c;.git 源码&#xff0c;admin…...

JVM二:JVM类加载机制

目录 前言 1.什么是类加载? 2.类加载整体流程 3.一个类什么时候被加载? 4.双亲委派模型 4.1 JVM默认提供了三个类加载器 4.1.1 BootstrapClassLoader 4.1.2 ExtensionClassLoader 4.1.3 ApplicationClassLoader 4.2 破坏双亲委派模型 前言 在上一篇文章中&#xf…...

对于springboot无法连接redis解决方案

对于springboot无法连接redis解决方案 一、测试是否能在本地应用上访问到你的redis&#xff08;如果是部署在linux上的话&#xff09;1. 开启telnet功能2. 开始测试端口是否能访问到&#xff08;适用于所有&#xff0c;包括MQ&#xff09;3. 开放6379端口4. 看spring的配置文件…...

关于android中的各种尺寸与计算

--张学友《心如刀割》很好听 先说几个术语&#xff1a; Screen size(屏幕尺寸)&#xff1a; 指的是手机实际的物理尺寸&#xff0c;比如常用的2.8英寸&#xff0c;3.2英寸&#xff0c;3.5英寸&#xff0c;3.7英寸 摩托罗拉milestone手机是3.7英寸 Aspect Ratio(宽高比率)&am…...

MySQL避免索引失效的方法详细介绍

避免索引失效 在MySQL中&#xff0c;索引是帮助MySQL高效获取数据的数据结构。它就像一本书的目录&#xff0c;通过索引可以快速定位到数据的具体位置&#xff0c;从而减少对数据库的扫描量&#xff0c;提高查询速度。索引可以存储在表中的一个或多个列上&#xff0c;创建索引…...

【Java】深入了解 Java 的 charAt() 方法

我最爱的那首歌最爱的angel 我到什么时候才能遇见我的angel 我最爱的那首歌最爱的angel 我不是王子也会拥有我的angel &#x1f3b5; 张杰《云中的angel》 在 Java 编程中&#xff0c;字符串&#xff08;String&#xff09;是我们经常处理的数据类型之一。…...

Linux 下 ETCD 安装、配置与命令使用总结

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; Linux 下 ETCD 安装、配置与命令使用总结 ETCD 是一个分布式键值存储系统&#xff0c;广泛用于服务发现、分布式锁、配置管理等场景&#xff0c;特别是在 Kubernetes 集群中发挥着至关重要的作用。ETCD 的高…...

C++笔试练习笔记【7】:力扣 91. 解码方法 动态规划练习

文章目录 题目题目分析思路解法正常解法优化解法 题目 题目链接&#xff1a;力扣 91. 解码方法 备用链接&#xff1a;https://leetcode.cn/problems/decode-ways/description/ 题目分析 1.首先我们知道题目给定A~Z编码为1 ~26 &#xff0c;而数字十一字符串的形式给出所以…...

【antd】antd3的表单校验不提示报错信息

描述 不是网上所谓的自定义校验方法的问题。 今天在写一个antd3的业务的时候&#xff0c;封装一个组件&#xff0c;把校验和请求事件放在一个方法里面&#xff0c;用回调或者promise进行异步处理。 发现原因是在校验错误的判断&#xff0c;进行callback之后&#xff0c;页面…...

Game AI ——游戏人工智能(逻辑及剧情生成)

一、Game AI 的介绍 "Game AI"&#xff08;游戏人工智能&#xff09;通常指的是在电子游戏中使用的各种人工智能技术和算法&#xff0c;用于控制游戏中的非玩家角色&#xff08;NPC&#xff09;、敌人、队友等&#xff0c;以及为玩家提供有挑战性的对手或有趣的互动…...

算法基础知识——核函数

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正 核函数&#xff08;Kernel Function&#xff09;是机器学习中一种重要的工具&#xff0c;特别是在支持向量机&#xff08;SVM&#xff09;、核岭回归、核主成分分析&#xff08;KPCA&#xff09;等核…...

安卓xml乱码/加密转换:abx2xml和xml2abx使用及源码介绍

背景&#xff1a; 上一篇文章 android系统中data下的xml乱码无法查看问题剖析及解决方法 发布后&#xff0c;想要寻找一个可以直接把二进制xml和普通xml进行相互转换的&#xff0c;当时还写了相关的方案&#xff0c;但是当时没有找到现成的开源工具&#xff0c;后来经过相关粉…...

slice 截取

JavaScript中的一个数组方法。然而&#xff0c;在Vue 3的应用开发中&#xff0c;slice 方法经常被用于处理数组数据&#xff0c;特别是在需要实现分页、数据截取或数据展示等场景时。 slice 方法的基本用法 slice() 方法返回一个新的数组对象&#xff0c;这一对象是一个由 be…...

XReparentWindow踩坑分析

X11是Linux发行系统中广泛采用的显示协议&#xff0c;各个系统基本上都支持XLib库&#xff0c;作为底层接口&#xff0c;XReparentWindow接口的功能就是重新设置父窗口&#xff0c;注意这个可以跨进程设置父窗口&#xff0c;例如将已经运行的进程的父窗口设置自己的程序Wid&…...

OpenAI动荡,将走向何方、GPT5或许将近、毒舌AI轻松破防网友、最新版 GPT-4o AI 模型得满分 | AGI视界周刊第 4 期

AI 视界周刊由战场小包维护&#xff0c;每周一更新&#xff0c;包含热点聚焦、应用破局、学术前沿、社区热议、智见交锋、跨界 AI、企业动态和争议 AI 八大板块&#xff0c;后续板块划分和内容撰写在周刊迭代过程中持续优化&#xff0c;欢迎大家提出建议。 欢迎大家来到《AI 视…...

RCE---无字母数字webshell

<?php if(isset($_GET[code])){$code $_GET[code];if(strlen($code)>35){die("Long.");}if(preg_match("/[A-Za-z0-9_$]/",$code)){die("NO.");}eval($code); }else{highlight_file(__FILE__); } 分析代码&#xff1a;传参不大于35&…...

有意思的漏洞复现与分析一

目录 一、Linux命令长度限制突破方法 1.在二进制漏洞利用中&#xff0c;某师傅遇到可控数据只有8字节的情况&#xff0c;去掉字符 串尾的\0&#xff0c;限制在7个字符。 一、Linux命令长度限制突破方法 1.在二进制漏洞利用中&#xff0c;某师傅遇到可控数据只有8字节的情况&a…...

力扣题解(按身高排序)

2418. 按身高排序 给你一个字符串数组 names &#xff0c;和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i&#xff0c;names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。 思路&…...

Redis的六种淘汰策略详解

Redis作为一种高性能的键值对存储系统&#xff0c;其数据全部存储在内存中&#xff0c;因此内存管理对Redis的性能至关重要。当Redis的内存使用达到上限时&#xff0c;就需要通过淘汰策略来释放内存空间&#xff0c;以便存储新的数据。Redis提供了六种不同的淘汰策略&#xff0…...

vue3中 ref 和 reactive 的区别

相同&#xff1a;均是声明响应式对象。且声明的响应式对象是深层的 1. 数据类型不同&#xff1a;ref用于包装JavaScript基本类型的数据&#xff08;如字符串、数字、布尔值等&#xff09;&#xff0c;而reactive可以用于包装JavaScript对象和数组等复杂类型的数据。 2.访问方式…...

《单例模式的深度解读:实现方式、破坏情况与利弊权衡》

单例模式 一、单例模式的定义 ​ 单例模式&#xff08;Singleton Pattern&#xff09;是一种常见的软件设计模式&#xff0c;确保一个类只有一个实例存在&#xff0c;并提供一个全局访问点来获取该实例。 二、单例模式的实现方式 ​ 1.懒汉式单例 public class LazySingle…...