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

29 openEuler管理网络-配置网络绑定

文章目录

    • 29 openEuler管理网络-配置网络绑定
      • 29.1 使用nmcli
      • 29.2 使用命令行
        • 29.2.1 检查是否已安装Bonding内核模块
        • 29.2.2 创建频道绑定接口
        • 29.2.3 创建从属接口
        • 29.2.4 激活频道绑定
        • 29.2.5 创建多个绑定

29 openEuler管理网络-配置网络绑定

29.1 使用nmcli

  • 创建名为bond0的绑定,使用示例如下:

    [root@superman-21 ~]# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup
    连接 "bond0" (180f0202-eb66-4530-a0d0-17a4860abfe6) 已成功添加。
    [root@superman-21 ~]#
    
  • 添加从属接口,使用示例如下:

    [root@superman-21 ~]# nmcli con add type bond-slave ifname ens33 master bond0
    连接 "bond-slave-ens33" (530e5a4d-9bf5-4151-97a7-5fc34790f610) 已成功添加。
    [root@superman-21 ~]# 
    

    要添加其他从属接口,重复上一个命令,并在命令中使用新的接口,使用示例如下:

    [root@superman-21 ~]# nmcli con add type bond-slave ifname ens36 master bond0
    连接 "bond-slave-ens36" (006f3c08-ffd7-45ab-8f8b-2b79dbb640da) 已成功添加。
    [root@superman-21 ~]# 
    
  • 要启动绑定,则必须首先启动从属接口,使用示例如下:

    [root@superman-21 ~]# nmcli con up bond-slave-ens33
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
    [root@superman-21 ~]#
    
    [root@superman-21 ~]# nmcli con up bond-slave-ens36
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
    [root@superman-21 ~]#
    

    现在可以启动绑定,使用示例如下:

    [root@superman-21 ~]# nmcli con up bond0
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)
    [root@superman-21 ~]#
    
  • bond0状态示例如下:

    [root@superman-21 ~]# cat /proc/net/bonding/bond0 
    Ethernet Channel Bonding Driver: v5.10.0-60.18.0.50.oe2203.x86_64Bonding Mode: fault-tolerance (active-backup)
    Primary Slave: None
    Currently Active Slave: ens36
    MII Status: up
    MII Polling Interval (ms): 100
    Up Delay (ms): 0
    Down Delay (ms): 0
    Peer Notification Delay (ms): 0Slave Interface: ens36
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:96:c9:e1
    Slave queue ID: 0Slave Interface: ens33
    MII Status: up
    Speed: 1000 Mbps
    Duplex: full
    Link Failure Count: 0
    Permanent HW addr: 00:0c:29:96:c9:d7
    Slave queue ID: 0
    [root@superman-21 ~]# 
    

29.2 使用命令行

29.2.1 检查是否已安装Bonding内核模块

在系统中默认已加载相应模块。要载入绑定模块,可在root权限下使用如下命令:

[root@compute ~]# modprobe --first-time bonding
[root@compute ~]# 

显示该模块的信息,可在root权限下使用如下命令:

[root@superman-21 ~]# modinfo bonding
filename:       /lib/modules/5.10.0-60.18.0.50.oe2203.x86_64/kernel/drivers/net/bonding/bonding.ko
author:         Thomas Davis, tadavis@lbl.gov and many others
description:    Ethernet Channel Bonding Driver
license:        GPL
alias:          rtnl-link-bond
srcversion:     567375FF5BBB59184962A66
depends:        
retpoline:      Y
intree:         Y
name:           bonding
vermagic:       5.10.0-60.18.0.50.oe2203.x86_64 SMP mod_unload modversions 
sig_id:         PKCS#7
signer:         openEuler kernel signing key
sig_key:        62:1D:B6:4C:CD:82:A9:3E:3B:55:8A:80:AE:2F:A5:A0:40:94:0E:F5
sig_hashalgo:   sha256
signature:      18:23:5D:42:90:11:E1:9D:E1:69:5E:C4:BB:71:33:2D:74:FF:FD:42:46:8C:26:6C:02:A5:06:92:58:F4:B1:02:AB:45:01:80:2F:3B:E7:77:A1:AD:DF:C5:5D:12:0A:8F:D5:03:10:DE:45:FB:E8:8A:1F:87:86:13:16:5F:1D:51:A5:E3:85:B7:9F:6C:94:A1:35:00:13:CB:D5:3A:FF:AA:89:E2:03:92:1D:45:00:27:2C:B3:5A:BC:E2:F2:12:12:4E:64:8C:6A:A8:D9:C2:93:28:CB:F7:E4:05:4C:43:31:5E:9D:53:C6:D7:B0:78:E1:F2:75:86:C6:18:40:21:1A:E3:0F:14:D3:EF:5B:E6:08:49:C0:32:40:FF:B4:30:EE:D1:7B:8A:86:F4:C4:EF:65:A9:6B:45:48:75:2A:E5:E9:1E:E9:AB:88:96:ED:0B:87:0E:F4:78:5A:BD:A9:90:4D:24:C5:DA:12:C0:34:0F:13:43:BD:1F:46:DF:38:AC:0E:5A:CB:40:AD:48:55:4F:40:27:F3:8C:D5:6D:3D:66:27:5F:2D:3D:0F:DB:4B:34:08:0E:8E:DF:7D:1E:46:C7:35:AB:12:9A:33:BC:61:35:64:29:EB:22:12:F9:BD:D8:FA:F0:E8:33:6D:98:E5:52:4A:64:82:57:02:90:5F:B7:3D:87:67:A7:E5:9D:8C:F2:36:04:AB:80:CC:D6:72:AE:F9:69:F3:79:D5:50:7C:90:76:BC:DA:B3:51:21:B6:30:9D:46:B7:C0:D9:6C:B8:BF:CF:39:3F:8A:36:0B:7F:E5:4C:F2:87:FC:8F:0D:D9:11:2B:B7:1C:EE:44:03:67:C1:81:81:A5:5A:7C:10:09:C7:37:F2:2D:11:EE:0D:63:4D:AC:55:25:F3:39:3E:B5:37:51:AF:9B:EA:FB:0B:66:2D:25:5C:8F:1F:6F:F6:18:E5:D5:C1:44:E7:EE:2E:23:CA:D4:F5:B2:FC:A6:94:2D:8F:BA:0F:F6:AD:0A:BA:44:AB:DC:28:A1:58:B9:0B:81:CE:59:C5:78:36:8F:DB:2D:07:2A:82:24:DA:F1:E1:E7:4C:E1:FD:D8:8D:5F:BE:A9:64:1B:B0:38:86:59:09:AD:D6:EC:FF:74:FF:A1:B6:B9:18:84:BA:F8:CD:E5:E5:BD:F1:A6:5D:E6:80:2C:64:56:21:52:A0:5A:CC:48:D2:8B:10:08:ED:E2:FF:1F:FA:9E:26:60:63:B0:92:19:02:5B:51:A7:38:0D:35:BC:02:60:E6:8F:CD:B9:D6:BF:5F:B4:BA:96:34:DC:24:DA:BC:B8:A4:C8:4A:81:58:4C:42:89:E7:4C:64:F4:87:D4:A0:C2:0E:59
parm:           max_bonds:Max number of bonded devices (int)
parm:           tx_queues:Max number of transmit queues (default = 16) (int)
parm:           num_grat_arp:Number of peer notifications to send on failover event (alias of num_unsol_na) (int)
parm:           num_unsol_na:Number of peer notifications to send on failover event (alias of num_grat_arp) (int)
parm:           miimon:Link check interval in milliseconds (int)
parm:           updelay:Delay before considering link up, in milliseconds (int)
parm:           downdelay:Delay before considering link down, in milliseconds (int)
parm:           use_carrier:Use netif_carrier_ok (vs MII ioctls) in miimon; 0 for off, 1 for on (default) (int)
parm:           mode:Mode of operation; 0 for balance-rr, 1 for active-backup, 2 for balance-xor, 3 for broadcast, 4 for 802.3ad, 5 for balance-tlb, 6 for balance-alb (charp)
parm:           primary:Primary network device to use (charp)
parm:           primary_reselect:Reselect primary slave once it comes up; 0 for always (default), 1 for only if speed of primary is better, 2 for only on active slave failure (charp)
parm:           lacp_rate:LACPDU tx rate to request from 802.3ad partner; 0 for slow, 1 for fast (charp)
parm:           ad_select:802.3ad aggregation selection logic; 0 for stable (default), 1 for bandwidth, 2 for count (charp)
parm:           min_links:Minimum number of available links before turning on carrier (int)
parm:           xmit_hash_policy:balance-alb, balance-tlb, balance-xor, 802.3ad hashing method; 0 for layer 2 (default), 1 for layer 3+4, 2 for layer 2+3, 3 for encap layer 2+3, 4 for encap layer 3+4 (charp)
parm:           arp_interval:arp interval in milliseconds (int)
parm:           arp_ip_target:arp targets in n.n.n.n form (array of charp)
parm:           arp_validate:validate src/dst of ARP probes; 0 for none (default), 1 for active, 2 for backup, 3 for all (charp)
parm:           arp_all_targets:fail on any/all arp targets timeout; 0 for any (default), 1 for all (charp)
parm:           fail_over_mac:For active-backup, do not set all slaves to the same MAC; 0 for none (default), 1 for active, 2 for follow (charp)
parm:           all_slaves_active:Keep all frames received on an interface by setting active flag for all slaves; 0 for never (default), 1 for always. (int)
parm:           resend_igmp:Number of IGMP membership reports to send on link failure (int)
parm:           packets_per_slave:Packets to send per slave in balance-rr mode; 0 for a random slave, 1 packet per slave (default), >1 packets per slave. (int)
parm:           lp_interval:The number of seconds between instances where the bonding driver sends learning packets to each slaves peer switch. The default is 1. (uint)
[root@superman-21 ~]# 

更多命令请在root权限下使用modprobe --help查看。

29.2.2 创建频道绑定接口

要创建绑定接口,可在root权限下通过在 /etc/sysconfig/network-scripts/ 目录中创建名为 ifcfg-bondN 的文件(使用接口号码替换 N,比如 0)。

根据要绑定接口类型的配置文件来编写相应的内容,比如网络接口。接口配置文件示例如下:

[root@superman-21 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0 
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.0.21
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="=mode=active-backup"
[root@superman-21 ~]# 

29.2.3 创建从属接口

创建频道绑定接口后,必须在从属接口的配置文件中添加 MASTER 和 SLAVE 指令。

例如将两个网络接口enp3s0 和 enp4s0 以频道方式绑定,其配置文件示例分别如下:

[root@superman-21 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens33 
TYPE=Ethernet
NAME=bond-slave-ens33
UUID=530e5a4d-9bf5-4151-97a7-5fc34790f610
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@superman-21 ~]# 
[root@superman-21 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond-slave-ens36
TYPE=Ethernet
NAME=bond-slave-ens36
UUID=006f3c08-ffd7-45ab-8f8b-2b79dbb640da
DEVICE=ens36
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@superman-21 ~]# 

29.2.4 激活频道绑定

要激活绑定,则需要启动所有从属接口。请在root权限下,运行以下命令:

[root@superman-21 ~]# ifup ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@superman-21 ~]#
[root@superman-21 ~]# ifup ens36
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
[root@superman-21 ~]#

image-20221219190513462 说明:
对于已经处于“up”状态的接口,请首先使用“ifdown ens33 ”命令修改状态为down,其中 ens36 为实际网卡名称。

完成后,启动所有从属接口以便启动绑定(不将其设定为 “down”)。

要让 NetworkManager 感知到系统所做的修改,在每次修改后,请在root权限下,运行以下命令:

[root@superman-21 ~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-device
[root@superman-21 ~]# 

查看绑定接口的状态,请在root权限下运行以下命令:

[root@superman-21 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:96:c9:e1 brd ff:ff:ff:ff:ff:ff permaddr 00:0c:29:96:c9:d7altname enp2s1
3: ens36: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bond0 state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:96:c9:e1 brd ff:ff:ff:ff:ff:ffaltname enp2s4
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:96:c9:e1 brd ff:ff:ff:ff:ff:ff
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000link/ether 52:54:00:bc:bb:cd brd ff:ff:ff:ff:ff:ff
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000link/ether 52:54:00:bc:bb:cd brd ff:ff:ff:ff:ff:ff
[root@superman-21 ~]# 

29.2.5 创建多个绑定

系统会为每个绑定创建一个频道绑定接口,包括 BONDING_OPTS 指令。使用这个配置方法可让多个绑定设备使用不同的配置。请按照以下操作创建多个频道绑定接口:

  • 创建多个 ifcfg-bondN 文件,文件中包含 BONDING_OPTS 指令,让网络脚本根据需要创建绑定接口。
  • 创建或编辑要绑定的现有接口配置文件,添加 SLAVE 指令。
  • 使用 MASTER 指令工具在频道绑定接口中分配要绑定的接口,即从属接口。

以下是频道绑定接口配置文件示例:

DEVICE=bondN
NAME=bondN
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.0.21
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="bonding parameters separated by spaces"

在这个示例中,使用绑定接口的号码替换 N。例如要创建两个接口,则需要使用正确的 IP 地址创建两个配置文件 ifcfg-bond0 和 ifcfg-bond1。

image-20230226184930553

相关文章:

29 openEuler管理网络-配置网络绑定

文章目录29 openEuler管理网络-配置网络绑定29.1 使用nmcli29.2 使用命令行29.2.1 检查是否已安装Bonding内核模块29.2.2 创建频道绑定接口29.2.3 创建从属接口29.2.4 激活频道绑定29.2.5 创建多个绑定29 openEuler管理网络-配置网络绑定 29.1 使用nmcli 创建名为bond0的绑定&…...

RTT 全志D1s RDC2022纪念版开发板开箱使用分享与折腾记录

原文链接&#xff1a;https://bbs.aw-ol.com/topic/3021/ 作者caoxuetian 1&#xff1a;开发板介绍 RTT D1s RDC2022纪念版开发板是一块基于全志科技RISC-V内核 芯片 D1S的小尺寸开发板&#xff0c;尺寸仅为5.5cm*4cm&#xff0c;能够已非常小的体积带来舒适的开发感受&#…...

24日常实习万得一面面径

文章目录分析与复盘面试题分析与复盘 应该将项目进行复习好的&#xff0c;两个项目都应该对简历写的那些进行复习&#xff0c;以为日常不问项目的一面。哭死… 面试题 1.自我介绍 2.为什么从土木转到开发&#xff0c;学习java有哪些途径 3.介绍下项目中你觉得最有设计的模…...

MySQL的DML和DDL操作(1)

这里介绍几种DML操作INSERT INTO——插入记录插入一条记录插入一条记录 INSERT INTO table [(column [, column . ])] VALUES(value [,value . ]); 例子&#xff1a; insert into student values( 1,"承太郎" )default charset utf8&#xff1b;插入多条记录插入多条…...

Kafka系列之:Kafka生产者和消费者

Kafka系列之:Kafka生产者和消费者 一、Kafka生产者发送流程二、提高生产者吞吐量三、Kafka消费方式四、Kafka消费者总体工作流程五、按照时间消费Kafka Topic一、Kafka生产者发送流程 batch.size:只有数据积累到batch.size之后,sender才会发送数据,默认16K。linger.ms:如果…...

Linux进程间通信:信号量(一)

前提知识 在介绍信号量之前&#xff0c;先来看看一些概念和一些简单的前提知识&#xff1a; 进程间通信的前提是让不同的进程看到同一份资源。于是&#xff0c;就有提出让这种资源成为一种公共资源的方法&#xff0c;方法的提出&#xff0c;导致了一种新的问题的出现&#xf…...

Python笔记一之excel的读取

这里我常用的 python 对于 excel 的读取库有两个&#xff0c;一个是 xlsxwriter 用于操作 excel 的写入&#xff0c;一个是 xlrd 用于 excel 文件的读取。 使用的库的版本如下&#xff1a; xlsx1.2.6xlrd1.1.0 xlsxwriter 写入 excel 新建一个 excel import xlsxwriterpat…...

JavaScript Number 数字对象

文章目录JavaScript Number 数字对象JavaScript 数字所有 JavaScript 数字均为 64 位精度八进制和十六进制无穷大&#xff08;Infinity&#xff09;NaN - 非数字值数字可以是数字或者对象数字属性数字方法JavaScript Number 数字对象 JavaScript 只有一种数字类型。 可以使用也…...

设计模式-服务定位器模式

设计模式-服务定位器模式一、背景1.1 服务定位模式1.2 策略模式二、代码实战2.1 服务定位器2.2 配置ServiceLocatorFactoryBean2.3 定义一个支付的接口2.4 根据不同类型处理Bean2.5 controller层三、项目结构及测试结果3.1 测试结果3.2 项目结构及源码(欢迎star)四、参考资料一…...

Android Dalvik虚拟机 GC流程分析

前言 本篇继续介绍安卓dalvik虚拟机&#xff0c;介绍Dalvik虚拟技的GC流程。 GC结构体 dalvik/vm/alloc/Heap.h static const GcSpec kGcForMallocSpec {true, /* isPartial */false, /* isConcurrent */true, /* doPreserve */"GC_FOR_ALLOC" }; /* Not eno…...

opencv读入图片注意事项

来源&#xff1a;投稿 作者&#xff1a;蓬蓬奇 编辑&#xff1a;学姐 深度学习数据预处理中常用opencv读入图片&#xff0c;一般在__getitem__函数中调用。本文主要介绍opencv读取图片的一些细节以及注意事项。本文中使用的图片见第6节“opencv测试使用的图片”。 1.如何通过o…...

学习渗透测试,考CISP-PTE还是考NISP-PT证书呢?

其实两者都可以&#xff0c;但是要看考生的实际需求&#xff01; 为什么说两者都可以&#xff1f; 两个证书都由中国信息安全测评中心颁发&#xff0c;CISP-PTE&#xff08;注册信息安全渗透测试工程师&#xff09;,NISP-PT&#xff08;国家信息安全水平考试渗透测试工程师),…...

记录自己遇到的关于Hashmap的面试题

一.麻烦讲述一下Hashmap的扩容原理 jdk1.8中的hashmap扩容原理 1.put流程图 首先贴一张图(图片来源于传送门&#xff09;&#xff0c;多谢大佬的美图&#xff0c;此图已经完美的描述了put的整个流程&#xff0c;我也就不想自己画了&#xff0c;嘿嘿: 2.hashmap中几个比较重…...

mysql数据库之sql语句性能分析工具

一、sql执行频率。 mysql客户端连接成功后&#xff0c;通过show [session | global] status 命令可以提供服务器状态信息。通过如下指令&#xff0c;可以查看当前数据库的INSERT/UPDATE/DELETE的访问频次。 #一个下划线代表一个字符 show global status like com_; 二、慢查…...

搭建SpringBoot项目

文章目录前言准备工具创建项目前言 为什么使用SpringBoot?它有什么好处&#xff1f; SpringBoot可以快速构建出独立的Spring应用&#xff0c;简化了配置文件。内嵌Tomcat服务器&#xff0c;无须手动部署war文件。 准备工具 idea2022navicat16postmanjdk1.8 创建项目 File-&…...

“一网统管”视频融合平台EasyCVR页面tab切换细节优化

EasyCVR视频融合平台基于云边端协同架构&#xff0c;能支持海量视频的轻量化接入与汇聚管理&#xff0c;借助大数据分析的决策判断&#xff0c;为网络摄像头、网络存储设备、智能终端、无人机、车载设备、移动执法仪、视频监控平台等提供一体化的视频接入、分发、存储、处理等能…...

【Python入门第二十天】Python Lambda

lambda 函数是一种小的匿名函数。 lambda 函数可接受任意数量的参数&#xff0c;但只能有一个表达式。 语法 lambda arguments : expression执行表达式并返回结果&#xff1a; 实例 一个 lambda 函数&#xff0c;它把作为参数传入的数字加 10&#xff0c;然后打印结果&…...

比特数据结构与算法(第四章_下)二叉树OJ(力扣:144,965,104,226,100,572)

144. 二叉树的前序遍历难度简单给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。示例 1&#xff1a;输入&#xff1a;root [1,null,2,3]输出&#xff1a;[1,2,3]示例 2&#xff1a;输入&#xff1a;root [ ]输出&#xff1a;[ ]示例 3&#xff1a;输入&#…...

【C++】inline 内联函数

文章目录&#x1f4d5; 概念&#x1f4d5; 使用前的准备&#x1f4d5; 使用&#x1f4d5; 特性&#x1f4d5; 概念 在 C 中&#xff0c;为了解决一些频繁调用的小函数大量消耗栈空间&#xff08;栈内存&#xff09;的问题&#xff0c;特别的引入了 inline 修饰符&#xff0c;表…...

如何审计一个智能合约

智能合约审计用于整个 DeFi 生态系统&#xff0c;通过对协议代码的深入审查&#xff0c;可以帮助解决识别错误、低效代码以及这些问题。智能合约具有不可篡改的特点&#xff0c;这使得审计成为任何区块链项目安全流程的关键部分。 代码审计对任何应用程序都很重要&#xff0c;…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...