Ansible 批量管理华为 CE 交换机
注:本文为 “Ansible 管理华为 CE 交换机” 相关文章合辑。
使用 CloudEngine - Ansible 批量管理华为 CE 交换机
wsf535 IP 属地:贵州
2018.02.05 15:26:05
总体介绍
Ansible 是一个开源的自动化运维工具,AnsibleWorks 成立于 2012 年,由自动化工具 Cobbler 及 Func 的开发者 Michael DeHaan 创建,基于 Python 开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible 能够安装在包括 Linux、BSD、Mac OS X 等平台。
Ansible 的 CloudEngine 模块是一个开源的,社区支持的应用程序。使用 CloudEngine 模块,可实现对华为数据中心 CE 系列交换机的自动化部署和配置。 您可以从 https://github.com/HuaweiSwitch/CloudEngine-Ansible 下载。
CloudEngine-Ansible 环境安装:
官方 git 地址:https://github.com/HuaweiSwitch/CloudEngine-Ansible
测试最新版本与 2.3 版本都有点问题,(需要加 export ANSIBLE_HOST_KEY_CHECKING=false 这个参数,不然连接会报错) 功能正常的是 2.0 版本
以下是在 centos 7 上的安装:
环境准备:
安装 ansible, 因 2.0 版本支持的 ansible 是 2.2 所以直接安装 ansible2.2, 通过 pip 方式安装
安装 python-devel (不安装,在安装 ansible 会报错)
yum install python-devel
安装 pip
wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py
pip install ansible==2.2
安装 ncclient
pip install ncclient
下载安装 ce-ansible:
下载
wget https://github.com/HuaweiSwitch/CloudEngine-Ansible/archive/v0.2.0.zip
解压
unzip v0.2.0.zip
cd CloudEngine-Ansible-0.2.0/
sh install.sh
交换机端的配置:(使用的是 ce5855)
# 配置一个 SSH 用户aaa
local-user wsf535 password irreversible-cipher $1a$}") FR_EZ!*$q9Y/I (iUOXbg~g!!cLuOe9:-OV=;XA*vD9NQ:tk5$local-user wsf535 service-type sshlocal-user wsf535 level 15
#
ssh user wsf535 authentication-type password
ssh user wsf535 service-type all
ssh authorization-type default aaa
#
user-interface vty 0 4authentication-mode aaaprotocol inbound ssh# 开启 netconf(关键,不开启会导致配置命令失败)snetconf server enable
使用及排错:
如果 centos 系统没连接过交换机会报以下错
An exception occurred during task execution.
To see the full traceback, use -vvv. The error was: IOError: [Errno 2]
No such file or directory: '/root/.ssh/known_hosts'
解决方法:手动 SSH 连接一下
ssh username@172.16.200.6
执行第一条测试命令:
ansible -m ce_command -a "commands='display vlan summary' transport='cli' host=172.16.200.6 port=22 username=wsf535 password=ABC@2017" localhost --connection local
如果成功返回则安装成功:
localhost | SUCCESS => {"changed": false, "stdout": ["Number of static VLAN: 10\nVLAN ID: 1 16 to 20 22 25 to 26 99 \n\nNumber of dynamic VLAN: 0\nVLAN ID: \n\nNumber of service VLAN: 31\nVLAN ID: 4064 to 4094"], "stdout_lines": [["Number of static VLAN: 10", "VLAN ID: 1 16 to 20 22 25 to 26 99", "", "Number of dynamic VLAN: 0", "VLAN ID:", "", "Number of service VLAN: 31", "VLAN ID: 4064 to 4094"]], "warnings": []
}
使用 playbook
定义主机,我的测试环境只有这一台,如果有多台加到 cloudengine 标签下
cat /etc/ansible/hosts
[all:vars]
ansible_connection='local'
username='wsf535'
password='ABC@2017'
ansible_ssh_port=22
[cloudengine]
172.16.200.6
新建一下 vlan.yml 文件,以下内容表示创建 vlan 50
---
- hosts: cloudenginegather_facts: novars:test_vlan: 50tasks: - ce_vlan: vlan_id={{test_vlan}} name="WEB" host={{inventory_hostname}} username={{username}} password={{password}} port={{ansible_ssh_port}}
执行操作
ansible-playbook vlan.yml
成功结果:
最后编辑于 :2018.03.08 17:01:40
使用华为 ansible CE 模块管理华为交换机
fengbingjin 于 2020-08-16 02:21:46 发布
华为 ansible CE 模块管理华为交换机
华为自己开源了 CE 交换机 ansible 管理模块,用 ansible 管理交换机那是相当的方便,现在 ansible CE 模块数量已经到了 60 多个,ansible 脚本已经能满足大部分的自动运维管理工作了
测试环境
-
VMware 虚拟机,ubuntu20.04-lts;
-
华为 ESNP 模拟器,V100R300C00SPC100;
安装部署
python 配置
ubuntu 虚拟机安装部署好后,系统自带 python3,需要安装 pip3,再通过 pip3 安装 ncclient 模块
apt install python3-pip
pip3 install ncclient
我的虚拟机上两条命令就完成 python 的配置,在另外一台树莓派上 ansible 脚本没有运行成功,报错 python 没有安装 paramiko 模块,还有某些依赖包没有安装,不一一列举了,百度一下就能解决
ansible
ansible 安装配置很简单,直接用 apt 命令安装就行,且自带华为的 CE 模块,不需要去华为的 Github 上去找源码安装,GitHub 上的已经三年没更新,bug 一堆
apt install ansible
配置 ansible 的配置文件 /etc/ansible/ansible.cfg,这里要把 host_key_cheking = False 取消注释,原因是不注释掉,如果本机从来没有 ssh 登录交换机,ansible 检查用户目录下.ssh/known_hosts 文件,发现没有交换机的 key 值,不会执行命令脚本
/etc/ansible/hosts 文件,配置登录参数和交换机清单
[all:vars]
ansible_connection=local
ansible_ssh_user=huawei
ansible_ssh_pass=Changeme_123
ansible_ssh_port=22
[cloudengine]
192.168.2.10
ansible playbook 脚本测试
脚本文件 ce.yml,测试 ce_interface 模块,批量打开交换机的端口
下图可见 1-9 口原处于 shutdown 状态
ce.yml 文件如下,作用是打开 2-9 端口
---
- name: CloudEngine ce_interface testhosts: cloudengineconnection: localgather_facts: novars:cli:host: "{{ inventory_hostname }}"port: "{{ ansible_ssh_port }}"username: "{{ ansible_ssh_user }}"password: "{{ ansible_ssh_pass }}"transport: clitasks:- name: "Admin up interfaces"ce_interface:interface: "{{ item }}"admin_state: upprovider: "{{ cli }}"with_items:- ge1/0/2- ge1/0/3- ge1/0/4- ge1/0/5- ge1/0/6- ge1/0/7- ge1/0/8- ge1/0/9
执行 ansible-playbook ce.yml,结果如下
去交换机上看结果,2-9 端口都处于 up 状态了
再用 dis c c c 命令查看交换机配置变更历史
实验成功!
Ansible 之管理华为交换机配置
恒悦 sunsite 于 2021-05-12 15:15:40 发布
一、需求说明
信息系统日常运维中除了服务器,我们还有很多网络设备,比如路由器、交换机、防火墙等。虽然从专业线上分类由主机工程师、网络工程师分别管理,但是在很多小单位可能配置的岗位并不充足,往往是一人身兼数个角色。很荣幸,Ansible 也支持网络设备的管理,本文介绍如何使用 Ansible 管理华为交换机,目前只支持管理 CE 系列交换机。
环境说明:
-
Ansible 主控机操作系统:centos 8.0.1905
-
Ansible 版本:2.9.21
-
python 版本:3.6.13
-
交换机型号:CE6800
-
交换机软件版本:V200R005C10SPC607B607
二、配置步骤
1、查看华为相关的模块
如下所示跟华为相关的模块有 68 个,均以 ce 开头
[root@centos8 ~]# ansible-doc -l |grep -i huawei |wc -l
68
[root@centos7 ~]# ansible-doc -l |grep -i huawei
ce_aaa_server Manages AAA server global configuration on HUAWEI CloudEngine switches
ce_aaa_server_host Manages AAA server host configuration on HUAWEI CloudEngine switches
ce_acl Manages base ACL configuration on HUAWEI CloudEngine switches
…
hwc_network_vpc Creates a Huawei Cloud VPC
hwc_smn_topic Creates a resource of SMNTopic in Huaweicloud Cloud
2、使用 ce_command 模块查看交换机信息
-
查看交换机路由信息
使用命令:[root@centos8 ~]# ansible -m ce_command -a “commands=‘display ip routing-table’ transport=‘cli’ host=192.168.200.100 port=22 username=admin1 password=123456” localhost --connection local
执行后查看的路由信息如下:
-
查看 vlan 信息
使用命令:[root@centos8 ansible]# ansible -m ce_command -a “commands=‘display vlan sum’ transport=‘cli’ host=192.168.200.100 port=22 username=admin1 password=123456” localhost --connection local
3、配置交换机组的 inventory 文件
[root@centos8 ansible]# cat switchs
[hw]
192.168.200.100 ansible_ssh_port=22 ansible_ssh_user=admin1 ansible_ssh_pass=123456
4、配置 playbook 文件
创建备份 交换机配置 的 playbook,备份到目录 /tmp/backup
[root@centos7 ansible]# vim ce.yml
[root@centos8 ansible]# cat ce.yaml
- name: CE switch command test.hosts: hwconnection: localgather_facts: novars:cli:host: "{{ inventory_hostname }}"port: "{{ ansible_ssh_port }}"username: "{{ ansible_ssh_user }}"password: "{{ ansible_ssh_pass }}"transport: clitasks:- name: configurable backup pathce_config:lines: sysname {{ inventory_hostname }}provider: "{{ cli }}"backup: yesbackup_options:filename: backup.cfgdir_path: /tmp/backup
5、执行 playbook 任务
[root@centos8 ansible]# ansible-playbook -i switchs ce.yaml
三、QA
1、执行 ansible-playbook 时报错 No module named ‘ncclient’
[root@centos8 ansible]# pip3 install ncclient
2、执行 playbook 时报错 "Unable to decode JSON from response to exec_command (**). Received ‘None’.
写在最后,尝试了各种 python 版本、操作系统版本都是报这个错,估计与 eNSP 模拟器 ce6800 有关。折腾了 3 天了,只能放弃了。直接执行是成功的,执行 play-book 报错没有收到交换机的任何信息。
Ansible Network 的基本用法,包括配置管理、状态采集的教程
玩机科技社已于 2023-03-31 18:40:28 修改
Ansible Network 是 Ansible 的一个模块,专门用于管理网络设备,比如交换机、路由器、防火墙等。使用 Ansible Network,我们可以通过编写 Ansible Playbook 来实现自动化的配置管理和状态采集。下面将介绍 Ansible Network 的基本用法。
- 安装 Ansible 和 Ansible Network
首先需要安装 Ansible 和 Ansible Network。如果已经安装了 Ansible,则可以使用以下命令安装 Ansible Network:
$ pip install ansible [core,base,netcommon,network]
- 编写 Ansible Playbook
Ansible Network 的 Playbook 与 Ansible 的普通 Playbook 类似,但是需要指定网络设备的类型和连接方式。下面是一个简单的 Ansible Network Playbook,用于配置一个 Cisco 交换机的 VLAN:
---
- name: Configure VLAN on Cisco switchhosts: switchesgather_facts: noconnection: network_clivars:vlan_id: 10vlan_name: test_vlantasks:- name: Create VLANios_vlan:vlan_id: "{{ vlan_id }}"vlan_name: "{{ vlan_name }}"state: present
该 Playbook 包含以下几个关键部分:
-
hosts
:指定要管理的网络设备,可以使用主机名或 IP 地址。 -
gather_facts
:关闭事实收集,因为网络设备可能无法返回系统信息。 -
connection
:指定连接方式,network_cli
表示使用 SSH 连接到网络设备。 -
vars
:定义变量,这里定义了 VLAN 的 ID 和名称。 -
tasks
:具体的任务列表,这里只有一个任务,用于创建 VLAN。
- 运行 Ansible Playbook
运行 Ansible Network Playbook 与运行普通的 Ansible Playbook 类似,只需要使用 ansible-playbook
命令并指定 Playbook 文件即可。例如,运行上述 Playbook 可以使用以下命令:
$ ansible-playbook -i inventory.ini playbook.yaml
其中,inventory.ini
是一个 Ansible Inventory 文件,包含要管理的网络设备的列表。
-
状态采集
除了配置管理,Ansible Network 还可以用于状态采集,例如获取网络设备的端口状态、路由表等信息。下面是一个简单的 Ansible Network Playbook,用于获取一个 Cisco 路由器的接口状态:
---
- name: Collect interface status from Cisco routerhosts: routersgather_facts: noconnection: network_clitasks:- name: Get interface statusios_command:commands:- show interfaces statusregister: result- name: Print interface statusdebug:var: result.stdout_lines
该 Playbook 包含以下几个关键部分:
-
hosts
:指定要管理的网络设备,可以使用主机名或 IP 地址。 -
gather_facts
:关闭事实收集,因为网络设备可能无法返回系统信息。 -
connection
:指定连接方式,network_cli
表示使用 SSH 连接到网络设备。 -
以下是了解网络设备管理工具 Ansible Network 的基本用法,包括配置管理、状态采集的教程:
Ansible Network 是 Ansible 官方提供的一款用于管理网络设备的工具。它基于 Ansible 的核心技术,提供了专门用于管理网络设备的模块和插件,可以用来自动化配置、部署和管理网络设备。
一、配置管理
-
安装 Ansible Network
-
在使用 Ansible Network 之前,需要安装 Ansible 和 Ansible Network。可以通过以下命令安装:
$ sudo pip install ansible $ sudo pip install ansible-base $ sudo pip install ansible-core $ sudo pip install ansible-network
-
配置 Ansible Inventory
-
Ansible Inventory 是 Ansible 用来管理主机清单的工具。使用 Ansible Network 时,需要将网络设备的管理 IP 地址加入到 Inventory 中。
可以手动编辑 Inventory 文件,也可以使用动态 Inventory 来自动生成 Inventory 文件。以下是手动编辑 Inventory 文件的示例:
-
[network] 10.0.0.1 10.0.0.2 [network:vars] ansible_network_os=ios ansible_user=admin ansible_password=123456 ansible_connection=network_cli
在 Inventory 文件中,可以定义多个组,每个组中包含多个主机。同时还可以为每个组和主机定义变量,以便在后续的任务中使用。
在以上示例中,定义了一个名为 network 的组,包含两个主机 10.0.0.1 和 10.0.0.2。同时为该组定义了一些变量,如 ansible_network_os 表示网络设备的操作系统为 IOS,ansible_user 表示登录网络设备的用户名为 admin,ansible_password 表示登录密码为 123456,ansible_connection 表示连接方式为 network_cli。
-
编写 Ansible Playbook
-
在 Ansible 中,使用 Playbook 来描述一组任务。以下是一个简单的 Ansible Playbook 示例,用于将一个名为 config.cfg 的配置文件上传到网络设备上:
--- - name: upload config filehosts: networktasks:- name: copy config file to network devicenetwork_cli:command_string: "copy tftp://10.0.0.3/config.cfg startup-config"authorize: yesauthorize_password: 123456
以上 Playbook 中,使用 network 组来指定目标设备。在 tasks 中,使用 network_cli 模块来执行命令,将 TFTP 服务器上的 config.cfg 文件拷贝到目标设备的 startup-config 文件中。其中,authorize 表示在执行命令前需要进行认证,authorize_password 表示认证密码为 123456。
-
执行 Ansible Playbook
-
使用以下命令执行 Ansible Playbook:
$ ansible-playbook upload_config.yml
执行过程中,Ansible 会连接到目标设备,并将 config.cfg 文件上传到设备上。执行完成后,可以在目标设备上检查配置文件是否已经生效。
via:
-
使用 CloudEngine - Ansible 批量管理华为 CE 交换机 wsf535 IP 属地:贵州
https://www.jianshu.com/p/b2b3cffa972b -
使用华为 ansible CE 模块管理华为交换机 fengbingjin 于 2020-08-16 02:21:46 发布
https://blog.csdn.net/fengbingjin/article/details/108031388 -
Ansible 之管理华为交换机配置 恒悦 sunsite 于 2021-05-12 15:15:40 发布
https://blog.csdn.net/carefree2005/article/details/115527288 -
20 了解网络设备管理工具 Ansible Network 的基本用法,包括配置管理、状态采集的教程
https://blog.csdn.net/m0_58782029/article/details/129388320 -
HuaweiSwitch/CloudEngine - Ansible
https://github.com/HuaweiSwitch/CloudEngine-Ansible
相关文章:

Ansible 批量管理华为 CE 交换机
注:本文为 “Ansible 管理华为 CE 交换机” 相关文章合辑。 使用 CloudEngine - Ansible 批量管理华为 CE 交换机 wsf535 IP 属地:贵州 2018.02.05 15:26:05 总体介绍 Ansible 是一个开源的自动化运维工具,AnsibleWorks 成立于 2012 年&a…...

基于自定义注解与 AOP 切面实现接口日志全面数据库存储
基于自定义注解与 AOP 切面实现接口日志全面数据库存储 一、引言 在当今复杂的软件系统开发与运维过程中,详细且精准地记录接口的各项信息对于系统性能监测、问题排查、安全审计以及业务分析都有着极为关键的意义。本文将深入讲解如何运用自定义注解与 AOP&#x…...

GraalVM完全指南:云原生时代下使用GraalVM将Spring Boot 3应用转换为高效Linux可执行文件
一、前言 在现代软件开发中,启动速度和资源利用率常常是衡量应用性能的关键指标。对于基于Spring Boot的应用来说,虽然它们易于开发和部署,但JVM的启动时间有时会成为一个瓶颈。本文介绍如何使用GraalVM将Spring Boot 3应用编译成原生Linux可执行文件,从而显著提高启动速度…...

单片机:实现驱动超声波(附带源码)
单片机实现驱动超声波模块 超声波模块(如HC-SR04)广泛应用于距离测量、避障系统、自动驾驶等嵌入式项目中。它能够通过发射超声波信号并接收反射波来计算物体的距离。本文将介绍如何使用单片机(如51系列单片机)驱动超声波模块&am…...

2025.01.15python商业数据分析top2
一、 导入项目 导入项目、准备项目数据 import pandas as pd# 文件路径为python文件位置下的相对路径dwxpd.read_excel("电蚊香套装市场近三年交易额.xlsx") fmfzpd.read_excel("防霉防蛀片市场近三年交易额.xlsx") msmcpd.read_excel("灭鼠杀虫剂市…...

信息系统项目管理-绩效考核
1.1.组织战略 组织的产品和服务战略的类型通常可以分为:技术密集型、()、目标动态型。 A市场导向型 B成本导向型 C人力密集型 D产品导向型 答案B 在组织的四项基本能力中,建立战略性奖励措施,根据员工对组织的贡献&am…...

【Linux】数据呈现
一、数据的输入与输出 1、标准文件描述符 Linux系统会将每个对象都当做文件来处理,包括输入和输出。它用文件描述符来标识每个文件对象。 文件描述符是一个非负整数,唯一会标识的是会话中打开的文件。每个进程一次最多可以打开9个文件描述符。bash sh…...

oracle 加字段和字段注释 sql
在 Oracle 数据库中,你可以使用 ALTER TABLE 语句来添加字段,并使用 COMMENT ON COLUMN 语句来添加字段注释。以下是一个示例: 假设你有一个名为 employees 的表,你想要添加一个名为 email 的字段,并为其添加注释。 …...

计算机网络压缩版
计算机网络到现在零零散散也算过了三遍,一些协议大概了解,但总是模模糊糊的印象,现在把自己的整体认识总结一下,(本来想去起名叫《看这一篇就够了》,但是发现网上好的文章太多了,还是看这篇吧&a…...

一文了解 gis 相关服务=》及前端地图服务相关总结
文章目录 概要OGC技术名词解释cesium 应用案例openlayers 中应用实例XYZ服务OSM服务WMS服务WMTS服务WFS服务 mapbox 应用实例矢量瓦片服务栅格瓦片服务WMS服务WFS服务 leaflet 中 地图服务实例加载OpenStreetMap瓦片图层加载自定义XYZ瓦片图层加载WMS服务图层加载WFS服务图层加…...

Brocade G610 配置
配置流程 zone创建–>cfg创建–>ip配置–>cfg启动并保存 查看端口信息 G610:admin> switchshow switchName: G610 switchType: 170.5 switchState: Online switchMode: Native switchRole: Principal switchDomain: 1 switchId: ff…...

DuetWebControl 开源项目常见问题解决方案
DuetWebControl 开源项目常见问题解决方案 DuetWebControl A completely new web interface for the Duet electronics [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/du/DuetWebControl 一、项目基础介绍 DuetWebControl 是一个为 RepRapFirmware 设计的完全响…...

亚信安全举办“判大势 悟思想 强实践”主题党日活动
为深入学习和贯彻党的二十届三中全会精神,近日,亚信安全举办了 “学习贯彻党的二十届三中全会精神——‘判大势 悟思想 强实践’党日活动”,并取得圆满成功。 本次活动特邀南京市委宣讲团成员、南京市委党校市情研究中心主任王辉龙教授出席。…...

Go怎么做性能优化工具篇之基准测试
一、什么是基准测试(Benchmark) 在 Go 中,基准测试是通过创建以 Benchmark 开头的函数,并接收一个 *testing.B 类型的参数来实现的。testing.B 提供了控制基准测试执行的接口,比如设置测试执行的次数、记录每次执行的…...

vue3国际化,主题切换
国际化 安装依赖 pnpm install i18n pnpm install vue-i18n main.js import { createApp } from vue import App from ./App.vue import { i18n } from /i18n/index; const app createApp(App) app.use(i18n); app.mount(#app) 根目录创建i18n文件夹,创建3个文件&…...

Linux Shell 脚本编程基础
打开kali,Xshell连接 一、 vim 1.sh 可利用 #! /bin/bash, #! /bin/dash ,#! bin/sh 这三种脚本解释器不论哪种,最终都是调用 dash 在1.sh内加入内容,尝试执行,./1.sh,但需要加权 或者,在不使用加权的情…...

vuex如何进行状态管理?
**Vuex:是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据共享。** (1) 如果是Vue2的环境,不能使用vuex4的版本,所以我们需要安装vuex3以下的版本安装。 创建项目:vue crea…...

嵌入式Linux QT+OpenCV基于人脸识别的考勤系统 项目
此项目是基于人脸识别的考勤系统开发,包括如下模块: 1、人脸识别考勤系统GUI界面设计,包括: (1)Qt环境(window环境/linux环境) ; (2)Qt工程创建分析; &am…...

通过阿里云 Milvus 与 PAI 搭建高效的检索增强对话系统
背景介绍 阿里云向量检索服务Milvus版(简称阿里云Milvus)是一款云上全托管服务,确保了了与开源Milvus的100%兼容性,并支持无缝迁移。在开源版本的基础上增强了可扩展性,能提供大规模 AI 向量数据的相似性检索服务。相…...

评估大语言模型在药物基因组学问答任务中的表现:PGxQA
这篇文献主要介绍了一个名为PGxQA的资源,用于评估大语言模型(LLM)在药物基因组学问答任务中的表现。 研究背景 药物基因组学(Pharmacogenomics, PGx)是精准医学中最有前景的领域之一,通过基因指导的治疗…...

在本地和远程转储域控制器哈希
更多内网知识课前往无问社区查看http://www.wwlib.cn 无凭据 - ntdsutil 如果您没有凭据,但有权访问 DC,则可以使用 lolbin ntdsutil.exe转储 ntds.dit: powershell "ntdsutil.exe ac i ntds ifm create full c:\temp q q" 我们…...

基于SSM+Vue的心理咨询问诊系统+LW示例参考
1.项目介绍 项目角色:管理员、患者(普通用户)、医师项目模块:医生管理、患者管理、科室管理、咨询管理、预约管理、急救知识、患者病历等测试环境:idea2024、tomcat8.5、maven3、jdk8、nodeV14.16.1、mysql5.7技术栈&…...

基于TMS320X281X/F28335的DSP入门到精通01_如何开始DSP的学习与开发
本部分开始基于《手把手教你学DSP—基于TMS320X281X》,《手把手教你DSP基于MS320F28335 》、《TMS320X281x DSP原理及C程序开发》,另外结合B站视频进行DSP嵌入式的学习。 《手把手教你学DSP—基于TMS320X281X》介绍的相对更为基础和详细,《手…...

Java爬虫获取1688 item_search_img接口详细解析
概述 1688作为中国领先的B2B电商平台,提供了丰富的API接口供开发者获取商品信息。item_search_img接口允许通过图片搜索商品,这对于需要基于图片进行商品查找的应用场景非常有用。本文将详细介绍如何使用Java爬虫技术获取1688的item_search_img接口数据…...

Java 连接 FTP 服务器全解析
Java 连接 FTP 服务器全解析 一、引言 在许多企业级应用和数据处理场景中,与 FTP 服务器进行交互是一项常见且重要的任务。Java 提供了强大的工具和库来实现与 FTP 服务器的连接、文件传输、目录操作等功能。本文将详细介绍如何使用 Java 连接 FTP 服务器…...

字节跳动C++面试题及参考答案(下)
说说B 树 b + 树 B 树: B 树是一种平衡的多路查找树,它的设计目的是为了减少磁盘 I/O 操作,适用于存储大量的数据并进行高效的查找、插入和删除操作。B 树的节点可以有多个子节点(通常称为多路),每个节点包含多个关键字,关键字之间是有序的。 B 树的结构特点包括:根节点…...

Rabbit MQ知识总结
1.什么是Rabbit MQ? Rabbit MQ是一个开源的消息代理软件,它实现了高级消息队列协议(AMQP); 基本概念 消息:消息是在应用程序之间传递的数据单元。可以是简单的文本信息,可以是复杂的对象。队列:队列是消息的容器&am…...

未来将要被淘汰的编程语言
COBOL - 这是一种非常古老的语言,主要用于大型企业系统和政府机构。随着老一代IT工作人员的退休,COBOL程序员变得越来越少。Fortran - 最初用于科学和工程计算,Fortran在特定领域仍然有其应用,但随着更现代的语言(如Py…...

GO环境安装和配置
安装go环境 wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz -P /usr/local或者去官网下载安装包 tar -xzf go1.23.4.linux-amd64.tar.gz sudo mv go /usr/local export GOROOT/usr/local/go export GOPATH$HOME/go export PATH$PATH:/usr/local/go/bin source ~/.bashr…...

面试题整理(四)
1.Max transition,leakage优化,hold time ,setup time violation修复的顺序是? 答:先把max transition修复掉,如果max transition有violation,意味着其超出了查找表范围之外,所以计算得到的delay都不是很准的。 其次是把setup修复了,因为setup相对来说,需要减少cell…...