查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
文章目录
- 摘要
- 1. 查询CPU使用率命令:top -bn1 | grep \"Cpu(s)\" | awk '{split($0,arr,\" \");print 100-arr[8]}'
- 2. 查询内存命令(单位:G):top -bn1 | grep \"KiB Mem\" | awk '{split($0,arr,\" \");print arr[4]/1024/1024,arr[8]/1024/1024}'
- 3.查询磁盘命令:df -h / | tail -n +2 | grep -v "Filesystem" | awk '{split($0,arr," ");print arr[2],arr[3],arr[5]}'
- 4.查询网络IO命令:ifstat
- 5.查询文件服务器中数据库空间占用大小命令:df -h /home/ems/3rdparty/mysql/data
- 6.查询每秒存储队列信息命令:vmstat -d|grep sda|awk '{print $11}'
- 7.查询IOPS信息命令:iostat -d|grep sda|awk '{print $3" "$4}'
- 8.查询文件系统中磁盘使用情况命令:df -BG
- 代码
摘要
1. 查询CPU使用率命令:top -bn1 | grep “Cpu(s)” | awk ‘{split($0,arr," ");print 100-arr[8]}’
[root@unm5800 ~]# top -bn1 | grep "Cpu(s)" | awk '{split($0,arr," ");print 100-arr[8]}'
8.7
2. 查询内存命令(单位:G):top -bn1 | grep “KiB Mem” | awk ‘{split($0,arr," ");print arr[4]/1024/1024,arr[8]/1024/1024}’
[root@unm5800 ~]# top -bn1 | grep "KiB Mem" | awk '{split($0,arr," ");print arr[4]/1024/1024,arr[8]/1024/1024}'
15.1709 9.70124
3.查询磁盘命令:df -h / | tail -n +2 | grep -v “Filesystem” | awk ‘{split($0,arr," ");print arr[2],arr[3],arr[5]}’
[root@unm5800 ~]# df -h / | tail -n +2 | grep -v "Filesystem" | awk '{split($0,arr," ");print arr[2],arr[3],arr[5]}'
296G 153G 55%
4.查询网络IO命令:ifstat
[root@unm5800 ~]# ifstat
#kernel
Interface RX Pkts/Rate TX Pkts/Rate RX Data/Rate TX Data/Rate RX Errs/Drop TX Errs/Drop RX Over/Rate TX Coll/Rate
lo 10764K 0 10764K 0 18446744070881M 0 18446744070881M 0 0 0 0 0 0 0 0 0
enp91s0f0 9181K 0 19534K 0 18446744071947M 0 220464K 0 0 0 0 0 0 0 0 0
enp91s0f1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eno1 609746 0 1161K 0 128777K 0 940272K 0 0 4546 0 0 0 0 0 0
enp91s0f2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eno2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
enp91s0f3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
enp0s20f0u1u6 31847 0 0 0 2316K 0 0 0 0 0 0 0 0 0 0 0
virbr0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
docker0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
br-070bd1b4b466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
br-08fd260a964c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
br-67b9049e39d6 1494 0 1494 0 59760 0 170316 0 0 0 0 0 0 0 0 0
br-e3d56b9f14ab 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
br-014f940f0996 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vethf216528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
veth930c642 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
veth5bb57ee 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
veth154692a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vethc30949a 1494 0 1494 0 80676 0 170316 0 0 0 0 0 0 0 0 0
veth821f11e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
veth6bb839e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
veth9671271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
这些字段是用于描述ifstat命令输出结果中的网络接口的信息。下面是对这些字段的介绍:
- ifstat <网络接口名称>
- Interface(接口):网络接口的名称。
- RX Pkts/Rate(接收数据包数/速率):接收的数据包数量和速率。
- TX Pkts/Rate(发送数据包数/速率):发送的数据包数量和速率。
- RX Data/Rate(接收数据量/速率):接收的数据量(以字节为单位)和速率。
- TX Data/Rate(发送数据量/速率):发送的数据量(以字节为单位)和速率。
- RX Errs/Drop(接收错误/丢弃):接收过程中产生的错误和丢弃的数据包数量。
- TX Errs/Drop(发送错误/丢弃):发送过程中产生的错误和丢弃的数据包数量。
- RX Over/Rate(接收溢出/速率):接收缓冲区溢出次数和速率。
- TX Coll/Rate(发送冲突/速率):发送时发生碰撞的次数和速率。 这些字段提供了关于网络接口的
详细统计信息,包括数据包数量、数据量、速率、错误情况、丢弃情况、溢出情况和碰撞情况等。通过观察这些字段的数值,可以了解网络接口的使用情况、性能状况和可能存在的问题。
5.查询文件服务器中数据库空间占用大小命令:df -h /home/ems/3rdparty/mysql/data
[root@unm5800 ~]# df -h /home/ems/3rdparty/mysql/data
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 296G 153G 128G 55% /
6.查询每秒存储队列信息命令:vmstat -d|grep sda|awk ‘{print $11}’
[root@unm5800 ~]# vmstat -d|grep sda|awk '{print $11}'
28415
vmstat -d命令
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
sda 6321733 2992979 326537984 192604637 16335233 11611252 558374392 397953929 0 159463
dm-0 2017377 0 126201641 106958407 7052267 0 129722136 163552294 0 85875
dm-1 4396348 0 35174488 92541369 10793514 0 86348112 1687958320 0 21982
dm-2 3184149 0 165098377 75003459 6532775 0 342299704 396611035 0 89434
根据您提供的 vmstat -d 命令输出,磁盘统计信息中显示了以下设备:
- sda:这是一个磁盘设备的名称,通常代表物理磁盘。它可能是你的系统上的主要硬盘。
- dm-0、dm-1、dm-2:这些是表示设备映射(Device Mapper)的块设备名称。在 Linux 系统中,dm- 表示逻辑卷(Logical Volume)或软件 RAID(Redundant Array of Independent Disks)。
Device Mapper 是 Linux 内核提供的一个模块,用于进行逻辑卷管理、软件 RAID、加密存储等操作。这些逻辑卷或软件 RAID 经过设备映射后,可以在操作系统中当作普通块设备使用。
因此,vmstat -d 命令输出显示了系统上的物理磁盘 sda 和经过设备映射的逻辑卷或软件 RAID dm-0、dm-1、dm-2 的磁盘统计信息。
根据您提供的 vmstat -d 命令输出中的 sec 值为 159463,它表示每秒的输入/输出操作数。这个值是计算从系统启动到当前时刻的累积值。
在 vmstat -d 命令的输出中,sec 表示系统每秒钟处理的输入和输出操作的数量。这包括从磁盘读取的数据量、向磁盘写入的数据量以及其他可能的输入/输出操作(如网络数据传输等)。
因此,sec 值代表每秒的输入/输出操作数,既包括读取操作也包括写入操作。
7.查询IOPS信息命令:iostat -d|grep sda|awk ‘{print $3" "$4}’
[root@unm5800 ~]# iostat -d|grep sda|awk '{print $3" "$4}'
220.44 3219.56
iostat -d 是一个 Linux 命令,用于显示块设备的输入/输出统计信息。该命令会提供有关磁盘和存储设备的各种性能指标。
Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain) 2023年08月16日 _x86_64_ (4 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 17.50 126.18 215.67 163243972 279015092
dm-0 7.00 48.77 50.08 63099436 64789492
dm-1 11.74 13.59 33.37 17587244 43174056
dm-2 7.51 63.79 132.21 82525552 171049324
运行 iostat -d 命令会显示如下信息:
- Device(设备):列出了系统中的每个块设备,如硬盘驱动器、固态硬盘等。
- tps(每秒传输请求数):表示每秒传输到设备的 I/O 请求的数量。包括读请求和写请求。
- kB_read/s(每秒读取数据量):表示每秒从设备读取的数据量。
- kB_wrtn/s(每秒写入数据量):表示每秒写入设备的数据量。
- kB_read(读取的总数据量):表示自系统启动以来从设备读取的总数据量。
- kB_written(写入的总数据量):表示自系统启动以来写入设备的总数据量。
这些指标可以帮助你了解块设备的性能状况,包括每秒的传输请求数量、读写速度以及设备的总体活动情况。
8.查询文件系统中磁盘使用情况命令:df -BG
[root@unm5800 ~]# df -BG
文件系统 1G-块 已用 可用 已用% 挂载点
devtmpfs 8G 0G 8G 0% /dev
tmpfs 8G 1G 8G 1% /dev/shm
tmpfs 8G 1G 7G 11% /run
tmpfs 8G 0G 8G 0% /sys/fs/cgroup
/dev/sda1 296G 153G 128G 55% /
overlay 296G 153G 128G 55% /var/lib/docker/overlay2/a42d4eb53de76f220eadbacbeecf268c53bc130615f5faf1b0472801bcae4492/merged
overlay 296G 153G 128G 55% /var/lib/docker/overlay2/59b75e561bd8b29088b503779940edbd2a0ad5518994e55a01db625407dfcf12/merged
overlay 296G 153G 128G 55% /var/lib/docker/overlay2/c7a3fd966d533eff6c199de317f6e815d6a1147665a7d81370fa71f4320df410/merged
overlay 296G 153G 128G 55% /var/lib/docker/overlay2/e3c1fe4e379a56b230e40d07d17cce6ba0330aebf3d25e85aa5d9e09ed2ee30a/merged
overlay 296G 153G 128G 55% /var/lib/docker/overlay2/2a5ea591d02955647e5f6c9e566b5c6a99d6ebed817bdc4c410e7b627c690622/merged
shm 1G 0G 1G 0% /var/lib/docker/containers/d6ad7cbc285e3e8d15477c891aded41533f6032c0a46297123a013ef35c12bd6/mounts/shm
shm 1G 0G 1G 0% /var/lib/docker/containers/f3ac596eb8e7a8a0454c8a90f3c1b23e52c5aab23911b335cbba3f5ed7f98574/mounts/shm
shm 1G 0G 1G 0% /var/lib/docker/containers/ccc00bbe149d20d0af4b8ccc581eebed79488742b06c21a93d1e4854d1ff0c83/mounts/shm
shm 1G 1G 1G 1% /var/lib/docker/containers/78f5e497c3104bd442776a272aac2d08abc1a2cdd8e8b917b44ee49e3b7f407a/mounts/shm
shm 1G 0G 1G 0% /var/lib/docker/containers/19835c87c59e5f6bb3f96f929b70076dc3d418089afe80aec63a7692a994b546/mounts/shm
tmpfs 2G 0G 2G 0% /run/user/0
代码
package com.util;import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import util.bean.MonitorPo;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.DecimalFormat;public class StringUtilsTests2 {private static Logger log = LoggerFactory.getLogger(StringUtilsTests2.class);@Testvoid parseString1() {MonitorPo monitorPo = new MonitorPo();InputStream in = null;BufferedReader read = null;Process pro = null;String cmd = "";String[] cmds = null;try {getCPUInfo(cmd, cmds, monitorPo, pro, in, read);getMemoryInfo(cmd, cmds, monitorPo, pro, in, read);getDiskInfo(cmd, cmds, monitorPo, pro, in, read);getNetworkResourceInformation(cmd, cmds, monitorPo, pro, in, read);getUsageOfTheMysqlDiskSpaceInTheFileSystem(cmd, cmds, monitorPo, pro, in, read);getUsageOfTheDiskSpaceInTheFileSystem(cmd, cmds, monitorPo, pro, in, read);getIopsResourceInformation(cmd, cmds, monitorPo, pro, in, read);getStoresQueueInputOrOutputOperandsPerSecond(cmd, cmds, monitorPo, pro, in, read);} catch (IOException|InterruptedException e) {log.error("-realTimeMonitoring-Exception:{}", e);} finally {try {if (pro != null)pro.destroy();if (read != null)read.close();if (in != null)in.close();} catch (IOException e) {log.error("-realTimeMonitoring-finally-IOException:{}", e);}}}//查询CPUprivate static void getCPUInfo(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {cmd = "top -bn1 | grep \"Cpu(s)\" | awk '{split($0,arr,\" \");print 100-arr[8]}'";String result = getSingleResult(cmd, cmds, pro, in, read);if (!StringUtils.isEmpty(result)) {monitorPo.setCpu(Double.valueOf(Double.parseDouble(result)));} else {monitorPo.setCpu(Double.valueOf(0.0D));}}//查询内存private static void getMemoryInfo(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {cmd = "top -bn1 | grep \"KiB Mem\" | awk '{split($0,arr,\" \");print arr[4]/1024/1024,arr[8]/1024/1024}'";String result = getSingleResult(cmd, cmds, pro, in, read);String[] arr = result.split(" ");double memoryTotal = Double.parseDouble(arr[0]);double memoryUsed = Double.parseDouble(arr[1]);DecimalFormat df = new DecimalFormat("#.##");double memoryUseRatio = Double.parseDouble(df.format(memoryUsed / memoryTotal * 100.0D));monitorPo.setMemoryTotal(Double.valueOf(memoryTotal));monitorPo.setMemory(Double.valueOf(memoryUsed));monitorPo.setMemoryUseRatio(Double.valueOf(memoryUseRatio));}//查询磁盘private static void getDiskInfo(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {cmd = "df -h / | tail -n +2 | grep -v \"Filesystem\" | awk '{split($0,arr,\" \");print arr[2],arr[3],arr[5]}'";String result = getSingleResult(cmd, cmds, pro, in, read);String[] arr = result.split(" ");monitorPo.setDiskTotal(Double.valueOf(Double.parseDouble(arr[0].replaceAll("G", ""))));monitorPo.setDiskUse(Double.valueOf(Double.parseDouble(arr[1].replaceAll("G", ""))));monitorPo.setDiskUseRatio(Double.valueOf(Double.parseDouble(arr[2].replaceAll("%", ""))));}//查询网络IO速率public static void getNetworkResourceInformation(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {log.info("-getNetworkResourceInformation");cmd = "ifstat";cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);if (pro.waitFor() == 0) {in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));String line;while ((line = read.readLine()) != null) {log.info("-line:{}", line);if (line.startsWith("eno") || line.startsWith("eth")) {String[] split = line.split("\\s+");String networkRxRate = split[1];String networkTxRate = split[3];monitorPo.setNetworkRxRate(Double.valueOf(Double.parseDouble(networkRxRate)));monitorPo.setNetworkTxRate(Double.valueOf(Double.parseDouble(networkTxRate)));break;}}}}//查询文件服务器中数据库空间占用大小public static void getUsageOfTheMysqlDiskSpaceInTheFileSystem(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {log.info("-getUsageOfTheMysqlDiskSpaceInTheFileSystem");cmd = "df -h /home/ems/3rdparty/mysql/data";cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);if (pro.waitFor() == 0) {in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));String line;while ((line = read.readLine()) != null) {log.info("-line:{}", line);if (line.startsWith("/dev")) {String[] split = line.split("\\s+");monitorPo.setDatabaseDiskSpaceIsUsed(split[2]);}}}}//查询每秒存储队列信息public static void getStoresQueueInputOrOutputOperandsPerSecond(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {log.info("-getStoresQueueInputOrOutputOperandsPerSecond");cmd = "vmstat -d|grep sda|awk '{print $11}'";cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);if (pro.waitFor() == 0) {in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));String line;while ((line = read.readLine()) != null) {log.info("-line:{}", line);monitorPo.setQueueOperands(Double.valueOf(Double.parseDouble(line)));}}}//查询IOPS信息public static void getIopsResourceInformation(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {log.info("-getIopsResourceInformation");cmd = "iostat -d|grep sda|awk '{print $3\" \"$4}'";cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);if (pro.waitFor() == 0) {in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));String line;while ((line = read.readLine()) != null) {log.info("-line:{}", line);String[] split = line.split("\\s+");String IOPSKbRead = split[0];String IOPSKbWrite = split[1];monitorPo.setIopsKbRead(Double.valueOf(Double.parseDouble(IOPSKbRead)));monitorPo.setIopsKbWrite(Double.valueOf(Double.parseDouble(IOPSKbWrite)));}}}//查询文件系统中磁盘使用情况public static void getUsageOfTheDiskSpaceInTheFileSystem(String cmd, String[] cmds, MonitorPo monitorPo, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {log.info("-getUsageOfTheDiskSpaceInTheFileSystem");cmd = "df -BG";cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);if (pro.waitFor() == 0) {in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));String line;while ((line = read.readLine()) != null) {log.info("-line:{}", line);if (line.endsWith("/")) {String[] split = line.split("\\s+");String used = split[2];if (used.contains("G"))used = used.replace("G", "");monitorPo.setDiskSpaceIsUsed(Double.valueOf(Double.parseDouble(used)));}}}}//java执行linux命令public static String getSingleResult(String cmd, String[] cmds, Process pro, InputStream in, BufferedReader read) throws IOException, InterruptedException {cmds = new String[] { "/bin/sh", "-c", cmd };log.info("-cmd:{}", cmd);pro = Runtime.getRuntime().exec(cmds);String line = "";in = pro.getInputStream();read = new BufferedReader(new InputStreamReader(in));if (pro.waitFor() == 0 && (line = read.readLine()) != null) {log.info("-line:{}", line);return line;}return null;}
}
相关文章:

查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
文章目录 摘要1. 查询CPU使用率命令:top -bn1 | grep \"Cpu(s)\" | awk {split($0,arr,\" \");print 100-arr[8]}2. 查询内存命令(单位:G):top -bn1 | grep \"KiB Mem\" | awk {split($…...

外观模式 rust和java的实现
文章目录 外观模式介绍实现javarustrust仓库 外观模式 外观模式(Facade Pattern)隐藏系统的复杂性,它为子系统中的一组接口提供一个统一的高层接口,使得这些接口更加容易使用。外观模式通过封装子系统内部的复杂性,提…...

uniapp-hubildx配置
1.配置浏览器 (1)运行》运行到浏览器配置》配置web服务器 (2)选择浏览器安装路径 (3)浏览器安装路径: (3.1) 右键点击图标》属性 (3.2)选择目标&…...

Nginx基础篇:Nginx搭建、Nginx反向代理、文件服务器部署配置。
Nginx Linux系统安装以及反向代理的配置 简介优点nginx 环境安装常用Nginx 命令nginx 文件服务器搭建 简介 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点…...

什么是TDR(威胁检测与响应)
网络安全是被动和主动方法的混合体。过去,企业往往局限于被动的方法,随着合规性和安全策略越来越受到重视,主动方法也越来越受到关注。与其他行业相比,网络安全是高度动态的,网络安全团队采用任何可以帮助他们优化的新…...

30、pytest入门内容回顾
整体结构 解读与实操 pytest30讲主要从四个方面由浅入深的进行解读, 开始 讲解了pytest的概述,安装前的准备工作(python,pycharm,pytest),运行方式(命令行),断言(assert…...

2023年 - 我的程序员之旅和成长故事
2023年 - 我的程序员之旅和成长故事 🔥 1.前言 大家好,我是Leo哥🫣🫣🫣,今天咱们不聊技术,聊聊我自己,聊聊我从2023年年初到现在的一些经历和故事,我也很愿意我的故事分…...
JMH性能测试
一、JMH JMH,全称Java Microbenchmark Harness(微基准测试框架),是专门用于Java代码微基准测试的一套测试工具API,是由Java虚拟机团队开发的,一般用于代码的性能调优。 BenchMark又叫做基准测试,…...

超完整的mysql安装配置方法(包含idea和navicat连接mysql,并实现建表)
mysql安装配置方法 1、下载mysql2、解压到指定的安装目录3、配置初始化文件my.ini4、配置用户变量和系统变量5、初始化mysql6、安装mysql服务并启动修改密码7、使用idea连接mysql8、使用Navicat可视化工具连接mysql,并实现新建数据库,新建表 1、下载mysq…...

通过仿真理解完整的阵列信号噪声模型
概要 噪声对无线电设备的信号接收会造成影响,是通信、雷达、导航、遥感等工程应用领域中的关键考虑因素。通常认为阵列合成能够提升信噪比,但忽略了这一论断的前提,即不同通道引入的噪声互不相关。但实际应用中,接收的噪声不仅仅包含信道引入的不相关噪声,还包含从外界环…...
问题:数组对象去重
问题:数组对象去重 var arr [{name: ‘a’,id: 1}, {name: ‘a’,id: 2}, {name: ‘b’,id: 3}, {name: ‘c’,id: 4}, {name: ‘c’,id: 6}, {name: ‘b’,id: 6}, {name: ‘d’,id: 7}]; 对数组对象name进行去重处理, 结果显示为: [{name…...

前端:让一个div悬浮在另一个div之上
使用 CSS 的 position 属性和 z-index 属性 首先,将第二个 div 元素的 position 属性设为 relative 或 absolute。这样可以让该元素成为一个定位元素,使得后代元素可以相对于它进行定位。 然后,将要悬浮的 div 元素的 position 属性设为 ab…...

千锋 Vue 详细笔记整理
视频笔记是根据B站 千锋 涛哥 - SpringBootvue前后端分离项目《锋迷商城》实战课-完结版 进行整理的 笔记可上 gitee仓库 自取 千锋 Vue 笔记整理 一、vue 的简介1.1 使用 JQuery 的复杂性问题1.2 VUE 简介1.2.1 前端框架1.2.2 MVVM 二、 vue 入门使用2.1 vue 的引入2.2 入门案…...

uniapp实战 —— 骨架屏
1. 自动生成骨架屏代码 在微信开发者工具中,预览界面点击生成骨架屏 确定后,会自动打开骨架屏代码文件 pages\index\index.skeleton.wxml 2. 将骨架屏代码转换为vue文件 在项目中新建文件 src\pages\index\components\skeleton.vue 将pages\index\index…...
【数据仓库-10】-- 数据仓库、数据湖和湖仓一体对比
目录 1 数据仓库与数据库的对比 2 数据湖与数据仓库的对比 3 数据仓库、数据湖和湖仓一体...

单臂路由与三层交换机
单臂路由 划分VLAN后同一VLAN的计算机属于同一个广播域,同一VLAN的计算机之间的通信是不成问题的。然而,处于不同VLAN的计算机即使是在同一交换机上,它们之间的通信也必须使用路由器。 图(a)是一种实现VLAN间路由的方…...

免费的数据采集软件,最新免费的几款数据采集软件【2024】
在当今数字化时代,数据是企业决策和业务发展的关键。而如何高效获取数据成为许多企业和研究机构的关注焦点。本文将深入探讨数据采集软件的种类。帮助大家选择最适合自己需求的数据采集工具。 数据采集软件种类 在众多数据采集软件中,有一类强大而多样…...

nodejs微信小程序+python+PHP北京地铁票务APP-计算机毕业设计推荐 -安卓
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...

zabbix 进阶
zabbix的字段发现机制: zabbix客户端主动和服务端联系,将自己的地址和端口发送服务端实现字段添加监控主机。 客户端是主动一方。 缺点:自定义网段中主机数量太多,登记耗时会很久,而且这个自动发现机制不是很稳定。…...

【性能测试】Jmeter 配置元件(一):计数器
Jmeter 配置元件(一):计数器 在 Jmeter 中,通过函数 ${__counter(,)} 可以实现每次加 1 1 1 的计数效果。但如果步长不为 1 1 1,则要利用到我们的计数器。 函数作用${__counter(,)}计数器,每次加 1${__d…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...

【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...

云原生安全实战:API网关Envoy的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口,负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...
用js实现常见排序算法
以下是几种常见排序算法的 JS实现,包括选择排序、冒泡排序、插入排序、快速排序和归并排序,以及每种算法的特点和复杂度分析 1. 选择排序(Selection Sort) 核心思想:每次从未排序部分选择最小元素,与未排…...

【笔记】结合 Conda任意创建和配置不同 Python 版本的双轨隔离的 Poetry 虚拟环境
如何结合 Conda 任意创建和配置不同 Python 版本的双轨隔离的Poetry 虚拟环境? 在 Python 开发中,为不同项目配置独立且适配的虚拟环境至关重要。结合 Conda 和 Poetry 工具,能高效创建不同 Python 版本的 Poetry 虚拟环境,接下来…...
Springboot多数据源配置实践
Springboot多数据源配置实践 基本配置文件数据库配置Mapper包Model包Service包中业务代码Mapper XML文件在某些复杂的业务场景中,我们可能需要使用多个数据库来存储和管理不同类型的数据,而不是仅仅依赖于单一数据库。本技术文档将详细介绍如何在 Spring Boot 项目中进行多数…...