查询服务器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…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...
