Linux系统下KVM虚拟机的基本管理和操作

news2025/1/16 5:50:06

Linux系统下KVM虚拟机的基本管理和操作

  • 一、检查本地环境
    • 1.检查系统版本
    • 2.检查防火墙状态
    • 3.检查selinux
    • 3.检查libvirtd服务状态
    • 4.检查kvm安装结果
    • 5.检查kvm虚拟机状态
    • 6.检查virsh版本
  • 二、virsh常用命令
    • 1.列出虚拟机
    • 2.虚拟机开关机操作
    • 3.删除虚拟机
    • 4.设置虚拟机在宿主机开机时自启
    • 5.挂起虚拟机
    • 6.查看虚拟机的配置文件
    • 7.对虚拟机配置文件操作
    • 8.查看KVM虚拟机相关配置文件
  • 三、KVM虚拟机的磁盘管理
    • 1.查看磁盘格式
    • 2.将raw格式磁盘文件转化为qcow2
    • 3.创建空的qcow2格式的磁盘文件
    • 4.修改镜像文件大小
    • 5.给虚拟机新增硬盘——临时生效
    • 6.给虚拟机新增硬盘——永久生效
    • 7.卸载硬盘
    • 8.查看虚拟机硬件情况
    • 9.在WebVirtMgr上查看虚拟机硬盘新增情况
  • 四、KVM虚拟机的网卡管理
    • 1.查看网卡
    • 2.新增网卡
    • 3.使新增网卡生效
    • 4.虚拟机查看新增网卡
    • 5.删除网卡
  • 五、KVM虚拟机的快照管理
    • 1.创建快照
    • 2.查看快照列表
    • 3.查看快照信息
    • 4.查看快照目录
    • 5.删除快照
    • 6.恢复快照
    • 7.snapshot-revert用法

一、检查本地环境

1.检查系统版本

[root@serer1 ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

2.检查防火墙状态

[root@serer1 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead) since Wed 2022-10-19 00:09:43 CST; 7s ago
     Docs: man:firewalld(1)
 Main PID: 642 (code=exited, status=0/SUCCESS)

3.检查selinux

[root@serer01 ~]# getenforce 
Disabled

3.检查libvirtd服务状态

[root@server ~]# systemctl status libvirtd
● libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2022-10-16 17:53:24 CST; 2 days ago
     Docs: man:libvirtd(8)
           https://libvirt.org
 Main PID: 29472 (libvirtd)
    Tasks: 18 (limit: 32768)
   Memory: 34.8M
   CGroup: /system.slice/libvirtd.service
           └─29472 /usr/sbin/libvirtd --listen

4.检查kvm安装结果

[root@server ~]# lsmod|grep kvm
kvm_intel             183621  4 
kvm                   586948  1 kvm_intel
irqbypass              13503  3 kvm

5.检查kvm虚拟机状态

[root@server ~]# virsh -c qemu:///system list
 Id    Name                           State
----------------------------------------------------
 9     kvm01                          running

6.检查virsh版本

[root@server ~]# virsh --version
4.5.0
[root@server ~]# virt-install --version
1.5.0

二、virsh常用命令

1.列出虚拟机

[root@server ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 9     kvm01                          running

[root@server ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 9     kvm01                          running

2.虚拟机开关机操作

virsh start kvm01    #虚拟机开机
virsh shutdown kvm01  #关闭虚拟机
virsh destroy kvm01  # 强制停止虚拟机

3.删除虚拟机

virsh undefine kvm01  #彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘

4.设置虚拟机在宿主机开机时自启

virsh autostart kvm01    # 宿主机开启时自启
virsh autostart --disable  kvm01   #  取开机自启

5.挂起虚拟机

virsh suspend  kvm01    # 挂起虚拟机
virsh resume  kvm01       #   恢复挂起的虚拟机

6.查看虚拟机的配置文件

[root@server ~]# virsh dumpxml kvm01 
<domain type='kvm' id='9'>
  <name>kvm01</name>
  <uuid>65438c9d-81cd-cd83-01de-77a5ed5af051</uuid>
  <description>None</description>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    <boot dev='hd'/>
    <boot dev='cdrom'/>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <cpu mode='custom' match='exact' check='full'>
    <model fallback='forbid'>IvyBridge-IBRS</model>
    <vendor>Intel</vendor>
    <feature policy='disable' name='ds'/>
    <feature policy='disable' name='acpi'/>
    <feature policy='require' name='ss'/>
    <feature policy='disable' name='ht'/>
    <feature policy='disable' name='tm'/>
    <feature policy='disable' name='pbe'/>
    <feature policy='disable' name='dtes64'/>
    <feature policy='disable' name='monitor'/>
    <feature policy='disable' name='ds_cpl'/>
    <feature policy='disable' name='vmx'/>
    <feature policy='disable' name='est'/>
    <feature policy='disable' name='tm2'/>
    <feature policy='disable' name='xtpr'/>
    <feature policy='disable' name='pdcm'/>
    <feature policy='require' name='movbe'/>
    <feature policy='disable' name='osxsave'/>
    <feature policy='disable' name='arat'/>
    <feature policy='disable' name='tsc_adjust'/>
    <feature policy='require' name='rdseed'/>
    <feature policy='require' name='smap'/>
    <feature policy='require' name='clflushopt'/>
    <feature policy='require' name='clwb'/>
    <feature policy='disable' name='intel-pt'/>
    <feature policy='require' name='sha-ni'/>
    <feature policy='require' name='umip'/>
    <feature policy='require' name='gfni'/>
    <feature policy='disable' name='md-clear'/>
    <feature policy='require' name='stibp'/>
    <feature policy='require' name='ssbd'/>
    <feature policy='require' name='xsaveopt'/>
    <feature policy='require' name='xsavec'/>
    <feature policy='require' name='xgetbv1'/>
    <feature policy='require' name='3dnowprefetch'/>
    <feature policy='disable' name='avx'/>
    <feature policy='disable' name='f16c'/>
    <feature policy='require' name='hypervisor'/>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/nas/kvm/centos_kvm.img'/>
      <backingStore/>
      <target dev='vda' bus='virtio'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/storage/kvm/CentOS-7-x86_64-Minimal-1511.iso'/>
      <backingStore/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <alias name='ide0-1-1'/>
      <address type='drive' controller='0' bus='1' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0' model='piix3-uhci'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:6c:cb:10'/>
      <source network='br0' bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <input type='mouse' bus='ps2'>
      <alias name='input0'/>
    </input>
    <input type='tablet' bus='usb'>
      <alias name='input1'/>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input2'/>
    </input>
    <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='cirrus' vram='16384' heads='1' primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+107:+107</label>
    <imagelabel>+107:+107</imagelabel>
  </seclabel>
</domain>

7.对虚拟机配置文件操作

virsh edit vm-name  #修改虚拟机的配置文件
virsh define file-name.xml  #根据配置文件定义虚拟机

8.查看KVM虚拟机相关配置文件

[root@server ~]# ls /etc/libvirt/qemu/
autostart  kvm01.xml  networks
[root@server ~]# ls /etc/libvirt/qemu/networks/
autostart  br0.xml
[root@server ~]# ls /etc/libvirt/qemu/networks/autostart/
br0.xml

三、KVM虚拟机的磁盘管理

1.查看磁盘格式

[root@server ~]# qemu-img info /nas/kvm/centos_kvm.img 
image: /nas/kvm/centos_kvm.img
file format: qcow2
virtual size: 40G (42949672960 bytes)
disk size: 2.2G
cluster_size: 65536
Format specific information:
    compat: 0.10

2.将raw格式磁盘文件转化为qcow2


$ qemu-img convert -f raw -O qcow2  /data/centos7.raw  /data/centos7.qcow
# qemu-img covert -f 源格式 -O 目标格式   源磁盘文件   目标磁盘文件

3.创建空的qcow2格式的磁盘文件

[root@server kvm]# qemu-img create -f qcow2 /nas/kvm/test.qcow2 5G
Formatting '/nas/kvm/test.qcow2', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 lazy_refcounts=off 
[root@server kvm]# qemu-img info /nas/kvm/test.qcow2 
image: /nas/kvm/test.qcow2
file format: qcow2
virtual size: 5.0G (5368709120 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

4.修改镜像文件大小


[root@server kvm]# qemu-img resize ./test.qcow2 +7G
Image resized.
[root@server kvm]# qemu-img info /nas/kvm/test.qcow2 
image: /nas/kvm/test.qcow2
file format: qcow2
virtual size: 12G (12884901888 bytes)
disk size: 200K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

5.给虚拟机新增硬盘——临时生效

virsh attach-disk kvm01 /nas/kvm/test.qcow2 vdb --subdriver=qcow2
# virsh  attach-disk  <虚拟机名称>  <新增磁盘路径>  <设备名>  <磁盘格式类型>

6.给虚拟机新增硬盘——永久生效

virsh attach-disk kvm01 /nas/kvm/test.qcow2 vdb --subdriver=qcow2  --config

7.卸载硬盘

virsh detach-disk kvm01 /nas/kvm/test.qcow2    #卸载临时生效
virsh detach-disk kvm01  /nas/kvm/test.qcow2  --config      # 卸载永久生效

8.查看虚拟机硬件情况

[root@server kvm]# virsh dumpxml kvm01 |grep  dev
    <boot dev='hd'/>
    <boot dev='cdrom'/>
  <devices>
    <disk type='file' device='disk'>
      <target dev='vda' bus='virtio'/>
    <disk type='file' device='disk'>
      <target dev='vdb' bus='virtio'/>
    <disk type='file' device='cdrom'>
      <target dev='hda' bus='ide'/>
      <target dev='vnet0'/>
      <source path='/dev/pts/0'/>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
  </devices>

9.在WebVirtMgr上查看虚拟机硬盘新增情况

image.png

四、KVM虚拟机的网卡管理

1.查看网卡

[root@server kvm]# virsh domiflist kvm01
Interface  Type       Source     Model       MAC
-------------------------------------------------------
vnet0      bridge     br0        virtio      52:54:00:6c:cb:10

2.新增网卡

[root@server kvm]# virsh attach-interface kvm01 --type bridge --source br0 
Interface attached successfully

3.使新增网卡生效

[root@server kvm]# virsh dumpxml kvm01 > /etc/libvirt/qemu/kvm01.xml 
[root@server kvm]# virsh define /etc/libvirt/qemu/kvm01.xml 
Domain kvm01 defined from /etc/libvirt/qemu/kvm01.xml

4.虚拟机查看新增网卡

[root@server kvm]# ssh root@192.168.3.169
The authenticity of host '192.168.3.169 (192.168.3.169)' can't be established.
ECDSA key fingerprint is SHA256:SMUWtN77SI+zUIX2bBR7/hY176zJLiWvY7KpIUlK0dw.
ECDSA key fingerprint is MD5:df:58:7e:61:73:82:b5:56:03:25:60:f1:80:a6:b1:0b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.3.169' (ECDSA) to the list of known hosts.
root@192.168.3.169's password: 
Last login: Tue Oct 18 23:19:15 2022 from 192.168.3.11
[root@serer01 ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:6c:cb:10 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.169/24 brd 192.168.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe6c:cb10/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:5d:4a:c4:9f brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:5dff:fe4a:c49f/64 scope link 
       valid_lft forever preferred_lft forever
5: veth0604e80@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP 
    link/ether be:7f:bd:57:88:71 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::bc7f:bdff:fe57:8871/64 scope link 
       valid_lft forever preferred_lft forever
6: ens7: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 52:54:00:45:1b:53 brd ff:ff:ff:ff:ff:ff

5.删除网卡

需要将虚拟机关机再进行删除网卡操作

[root@server kvm]# virsh detach-interface kvm01 --type bridge --mac 52:54:00:45:1b:53 --config
Interface detached successfully

[root@server kvm]# virsh dumpxml kvm01 > /etc/libvirt/qemu/kvm01.xml
[root@server kvm]# virsh define /etc/libvirt/qemu/kvm01.xml
Domain kvm01 defined from /etc/libvirt/qemu/kvm01.xml

[root@server kvm]# virsh domiflist kvm01
Interface  Type       Source     Model       MAC
-------------------------------------------------------
-          bridge     br0        virtio      52:54:00:6c:cb:10

五、KVM虚拟机的快照管理

1.创建快照

[root@server kvm]# virsh snapshot-create kvm01
Domain snapshot 1666155063 created

2.查看快照列表

[root@server kvm]# virsh snapshot-list kvm01
 Name                 Creation Time             State
------------------------------------------------------------
 1666155063           2022-10-19 12:51:03 +0800 shutoff

3.查看快照信息

[root@server kvm]# virsh snapshot-info kvm01 --current 
Name:           1666155063
Domain:         kvm01
Current:        yes
State:          shutoff
Location:       internal
Parent:         -
Children:       0
Descendants:    0
Metadata:       yes

4.查看快照目录

[root@server kvm]#  ll /var/lib/libvirt/qemu/snapshot/
total 0
drwxr-xr-x 2 root root 28 Oct 19 12:51 kvm01
[root@server kvm]#  ll /var/lib/libvirt/qemu/snapshot/kvm01/
total 8
-rw------- 1 root root 5550 Oct 19 12:51 1666155063.xml

5.删除快照

[root@server kvm]#  virsh snapshot-delete kvm01 1666155063
Domain snapshot 1666155063 deleted

6.恢复快照

virsh snapshot-revert kvm01  1666155063  --running

7.snapshot-revert用法

snapshot-revert用法:snapshot-revert [] [–current] [–running] [–paused] [–force]

选项:
     [--domain] <string> :指定domain名称,id或者uuid
     [--snapshotname] <string> : 指定快照名称
     --current  :恢复到当前快照
     --running :在恢复快照后自动运行虚拟机
     --paused  :在恢复快照后自动暂停虚拟机
     --force  :强制执行快照,有风险的恢复选项

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

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

相关文章

装在笔记本里的私有云环境:K8s 集群准备

本篇是系列中的第六篇内容&#xff0c;继续聊聊如何把一个简化过的私有云环境部署在笔记本里&#xff0c;以满足低成本、低功耗、低延时的实验环境。 在前几篇内容中&#xff0c;我们聊过了&#xff1a;虚拟化、监控、基础的存储、持续集成等内容&#xff0c;接下来的内容中&a…

告诉你如果对一个新产品进行测试

初入一家公司&#xff0c;当一个全新的产品摆在你的面前&#xff0c;你会如何快速入手呢&#xff1f;点、点、点。。。虽说实践是熟悉系统的第一要素&#xff0c;但我们需要静静思考一下。我是谁&#xff1f;--QA我在哪&#xff1f;--**产品组我要做什么&#xff1f;--保质量有…

Nature:“我还有用!“凋亡细胞释放的代谢物充当组织信使

代谢组学文献分享&#xff0c;细胞凋亡是指为维持内环境稳定&#xff0c;由基因控制的细胞自主的有序的死亡。2002年授予在“发现细胞凋亡的重要调控分子并阐述其作用机制”方面做出重要贡献的三位科学家诺贝尔生理和医学奖&#xff0c;caspase依赖的细胞凋亡约占机体内稳态细胞…

多线程初阶(一)

目录 前言&#xff1a; 认识多线程 创建线程 run方法和start区别 继承Thread类 实现Runnable接口 匿名内部类实现继承Thread类 匿名内部类实现Runnable接口实例 Lambda表达式 中断线程 等待线程 线程休眠 线程状态 线程状态之间切换 代码观察线程的状态 线程安…

多点DMALL × Apache Kyuubi:构建统一SQL Proxy探索实践

伴随着国家产业升级的推进和云原生技术成熟&#xff0c;多点 DMALL 大数据技术也经历了从存算一体到存算分离的架构调整变迁。本文将从引入 Kyuubi 实现统一 SQL Proxy 的角度讲述这一探索实践的历程。 多点 DMALL 成立于2015年&#xff0c;提供一站式全渠道数字零售解决方案 D…

STL的常用算法-查找 (20221130)

STL的常用算法 概述&#xff1a; 算法主要是由头文件<algorithm> <functional> <numeric> 组成。 <algorithm>是所有STL头文件中最大的一个&#xff0c;涉及比较、交换、查找、遍历等等&#xff1b; <functional>定义了一些模板类&#xff0…

使用记账软件记录生活收支明细,如何防止收支不被他人修改

坚持记账是每个人都必须要做的事情&#xff0c;日常生活中的生活开支都是一笔笔的支出&#xff0c;一个月挣来的工资&#xff0c;在不知不觉之中就花完了&#xff0c;可以使用——晨曦记账本记录生活明细&#xff0c;为了防止被他人修改&#xff0c;该如何操作呢&#xff1f;一…

Allegro调丝印规范操作指导

Allegro调丝印规范操作指导 Allegro和其它PCB设计软件一样,丝印的排布也是类似的,具体规范介绍如下 以下图为例 打开Setup-Design Parameter 选择text 设置丝印字体的参数 设置需要丝印的字体,比如3号字体,参数如下 然后点击OK Edit-Change需要调整丝印的字体

Linux-Hadoop部署

部署Hadoop一、Hadoop部署模式1、独立模式2、伪分布式模式3、完全分布式模式二、Hadoop集群规划1、集群拓扑2、角色分配三、JDK安装与配置1、下载JDK压缩包2、上传到master虚拟机3、在master虚拟机上安装配置JDK4、将JDK分发到slave1和slave2虚拟机5、将环境配置文件分发到slav…

图的初识·存储结构

邻接矩阵存储结构 用矩阵表示表示图中各个顶点之间的邻接关系和权值。如图G(V,E)G(V,E)G(V,E)&#xff0c;其中有N个结点&#xff0c;使用NxNNxNNxN的矩阵表示。 不带权值的图 Gij{1,无向图(vi,vj)或有向图的<vi,vj>是图中的边0,无向图的(vi,vj)或有向图的<vi,vj>…

猕猴桃的红色果肉受到特定的激活-抑制系统的控制

文章信息 题目&#xff1a;The red flesh of kiwifruit is differentially controlled by specific activation–repression systems 刊名&#xff1a;New Phytologist 作者&#xff1a;Wen-qiu Wang&#xff0c;Andrew C. Allan,Xue-ren Yin et al 单位&#xff1a;Zhejia…

猿如意开发工具|Sublime Text(4126)

文章目录 一、猿如意是什么&#xff1f; 二、如何使用猿如意下载安装Sublime Text 三、总结 一、猿如意是什么&#xff1f; 猿如意是一款面向开发者的辅助开发工具箱&#xff0c;包含了效率工具、开发工具下载&#xff0c;教程文档&#xff0c;代码片段搜索&#xff0c;全网搜…

【Pandas数据处理100例】(九十九):Pandas使用at_time()筛选出特定时间点的数据行

前言 大家好,我是阿光。 本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPandas版本:1.3.5N…

如何建立一套完善的销售管理体系?

怎样创建两套健全的产品销售体系&#xff1f;用工程建设观念管理工作产品销售项目组&#xff0c;创建健全的产品销售体系&#xff01; 逐步形成精确的最终目标虽说重要&#xff0c;但缺乏有效率的方式来破冰&#xff0c;最终目标可能将仅是这份无用。 篮球赛事球手的最终目标…

IOC 的底层原理和Bean管理XML方式、xml注入集合属性

目录 什么是IOC IOC底层管理 工厂模式 IOC 的过程 IOC 接口 IOC 操作Bean 原理 Bean 管理操作有两种方式 1. 基于xml 配置方式创建对象 2. 基于xml方式注入属性 第二种使用有参数构造注入 p 名称空间注入 ICO操作Bean管理&#xff08;xml 注入其他类型属性&#xff…

微信小程序的 websocket 以及 微信开发者工具测试 ws 协议没有数据的 离奇解决方案 记录

微信小程序的 websocket 在本地web能够使用ws协议去链接websocket&#xff0c;但是小程序不能使用。一、WSS 协议与 WS 协议二、业务场景记录 : 使用 ws 协议的 websocekt 做测试,但是在 h5中可以拿到实时数据,在微信开发者工具中以及真机调试中拿不到模拟数据的问题1. 首先在 …

2022安洵杯babybf

babybf 赛后分析了下&#xff0c;发现是一道很有意思的题目 Brainfuck是一种极小化的计算机语言&#xff0c;它是由Urban Mller在1993年创建的。由于fuck在英语中是脏话&#xff0c;这种语言有时被称为brainf*ck或brainf**k&#xff0c;甚至被简称为BF。 其实本题是一个c语言实…

三、【redux】异步action

文章目录1、不成熟的异步修改1.1、CODE1.1.1、count_action.js1.1.1、count_reducer.js1.2、异常2、异步action代码修正2.1、store.js2.2、count_action.js3、小总结action分两类&#xff1a; 同步&#xff1a;指action的值是Object类型的一般对象异步&#xff1a;指action的值…

在C#中使用Halcon开发视觉检测程序

本文的初衷是希望帮助那些有其它平台视觉算法开发经验的人能快速转入Halcon平台下&#xff0c;通过文中的示例开发者能快速了解一个Halcon项目开发的基本步骤&#xff0c;让开发者能把精力完全集中到算法的开发上面。 首先&#xff0c;你需要安装Halcon&#xff0c;HALCON 18.…

D. X-Magic Pair(辗转相除)

Problem - 1612D - Codeforces 给你一对整数&#xff08;a,b&#xff09;和一个整数x。 你可以用两种不同的方式改变这对整数。 设置&#xff08;分配&#xff09;a:|a-b|。 设置&#xff08;分配&#xff09;b:|a-b|。 其中|a-b|是a和b之间的绝对差值。 如果只用给定的操作就…