- 博客(46)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 制作rpm包
contents里src填的是要拷贝的文件相对于nfpm.yaml文件的路径。preuninstall,uninstall:在npm uninstall命令前执行。2>nfpm.yaml 指定rpm包安装阶段执行的解包、以及设置哪些文件需要拷贝。install,postinstall:在npm install命令后执行。postuninstall:在npm uninstall命令后执行。preinstall:在npm install命令前执行。使用nfpm制作rpm包,下面是做包使用到的关键文件。
2025-03-24 20:10:59
331
原创 DPDK常用接口
DPDK(Data Plane Development Kit)中用于创建数据包缓冲区池的函数。数据包缓冲区池用于存储和管理rte_mbuf对象,这些对象用于表示网络数据包。
2025-01-15 11:28:01
199
原创 DPDK程序编译
测试程序的编译编译命令:gcc -o test test.c -I/usr/local/include/ -lrte_node -lrte_hash -lrte_eal。/etc/profile中加上export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig/在/etc/ld.so.conf.d/下创建文件dpdk-ling.conf文件,内容是。/usr/local/lib64/ dpdk动态库so的位置。2.下载dpdk-22.03.tar.xz。
2024-10-31 15:01:09
536
原创 C语言inotify用法
inoify是一种文件系统事件监控机制,linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统添加、删除、移动、修改等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况。
2024-10-29 14:34:00
360
1
原创 正则表达式相关
i)st (?i)打开不区分大小写的模式,(?-i)关闭不区分大小写的模式。[0-9]+) 匹配的是红色部分,匹配runoob,但后面不是数字。上述正则可以匹配test,Test,TEst,但不匹配teST。exp2) 查找后面不是exp2的exp1。
2024-10-29 11:28:58
196
原创 snort和suricata相关内容
depth修改了规则中先前的“content"关键字,depth 5会使snort仅在payload的前5个字节内查找指定的模式。within也是一个修饰content的关键字,他表示从上一个content匹配位置之后的指定字节内对当前的content进行匹配,within的值不能为0。下面这个例子比较清楚的描述了within的用法,匹配完”abc”之后位置在’d’处,从’d’开始的3字节内对”def”进行匹配,而”fgh”明显已经超出了3字节的偏移.2.3 http_uri和http_raw_uri。
2024-10-29 11:28:17
539
原创 C语言相关
1.isspace,主要用于检查字符是否为空白字符,也就是判断是否为空格(' ')、水平定位字符('\t')、归位键('\r')、换行('\n')、垂直定位字符('\v')或翻页('\f')的情况,如果是则返回非0,否则返回0。
2024-10-29 11:27:05
260
原创 docker相关
1.编辑 Docker 的服务配置文件 /etc/docker/daemon.json(如果文件不存在,则创建它)。3.systemctl restart docker 重新启动Docker服务。
2024-10-29 11:26:36
142
原创 OceanBase数据库的使用(兼容MySQL)
usr/local/oceanbase/obclient/obclient -h127.0.0.1 -P2881 -u用户名 -p密码 --database 数据库名。CREATE USER '用户名'@'%' IDENTIFIED BY '密码';mysql -h 127.0.0.1 -P2881 -uxxx -p -uxxx 指定用户登录。发现root账号创建的数据库,其他账号无法访问该数据库和创建表,应该是权限问题。显示xxx表所有的列。
2024-10-29 11:26:03
781
原创 openEuler配置大页
1.使用命令:[ -d /sys/firmware/efi ] && echo 'The boot is UEFI' || echo 'The boot is BIOS' 确认系统是BIOS启动还是UEFI启动。4.编译命令:grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg 重启后生效。2.不能修改/boot/efi/EFI/openEuler/grub.cfg文件,这个文件改完,一编译就没了。
2024-10-29 11:25:29
314
原创 openEuler 22.03 LTS版本分析vmcore
1.安装vmcore文件对应的crash、kernel-debuginfo版本,否则用crash命令打开报错。openEuler 22.03 LTS版本的crash等rpm包链接。使用file vmcore命令可以查看vmcore版本。ps pid 查看core的进程信息。ps -p pid 查看进程父子关系。log 查message日志。bt查看core是的堆栈信息。2.分析vmcore文件。
2023-11-16 14:28:23
483
原创 clickhouse插入代替更新
使用ORDER BY排序键,作为判断数据是否重复的唯一键。这个表以id_card作为判断是否重复的唯一键。ReplacingMergeTree通过ORDER BY,表示判断唯一约束的条件。当分区合并之时,根据ORDER BY排序后,相邻重复的数据会被排除。clickhouse-client -h ip -u 用户名 --port=端口 --password=密码 --query='select * from xxx final FORMAT TabSeparated' > xxx(导出到哪个文件)
2023-10-31 19:31:03
637
原创 gdb调试python进程
3.注意glibc-debuginfo和glibc-debuginfo-common rpm版本要与设备上glibc rpm包版本一致,python-debuginfo rpm版本要与设备上python-2.7.5版本一致(如果设备装的是python2.7.5的话)。如果环境上执行不了debuginfo-install python命令,一个麻烦的办法是找一台能yum的设备,通过yumdownloader rpm包命令,下载指定版本的rpm包。下载后,再手动通过rpm -ivh命令安装。
2023-10-23 17:56:21
526
原创 多numa设备,如何看网卡插在哪个numa上
1.在Linux系统中,可以通过lstopo命令来查看系统的NUMA拓扑结构。这个命令通常随着hwloc包一起提供。(在bclinux安装后,只有lstopo-no-graphics命令,这个命令也能查看)安装hwloc包:yum install hwloc。使用lstopo命令来显示系统的NUMA拓扑结构。
2023-09-04 10:41:52
1214
原创 uProf工具
重置MSRs. AMDuProfPcm好像同时运行多个会有问题. 如果出现收集的统计数字全为0的情况, 可以使用该参数进行reset.uProf为AMD提供的性能分析工具, 可以分析CPU的cache访问情况, 内存通道与PCIE访问情况等信息.uProf内部工具挺多, 有几个为带GUI界面的程序, 本文主要介绍AMDuProfPcm工具.ipc: 表示instruction per cycles, 因此统计主频相关信息.memory: 表示内存带宽的统计.pcie: 表示pcie带宽的统计。
2023-08-30 10:22:15
311
原创 Python在使用dpkt库的时候报错 “ValueError: invalid tcpdump header”
Python在使用dpkt库的时候报错 “ValueError: invalid tcpdump header”的解决方法
2023-01-31 15:18:01
881
原创 kvm镜像扩展空间并新建分区
1.扩展kvm镜像空间,将原始镜像再扩大60Gqemu-img resize 镜像名 +60G2.镜像挂载到虚拟机上,开启虚拟机,并对镜像新增一个分区。fdisk -l看所有磁盘信息例如对/dev/sdc盘新增分区fdisk /dev/sdc3.格式化分区mkfs -t ext4 /dev/sdc34.挂在分区到指定目录。mkdir /test 新建目录mount /dev/sdc3 /test 挂载分区然后就可以在分区里随意创建文件了。...
2022-03-12 14:30:14
1201
原创 linux 常用命令(未完待续)
查看一个进程在每个Numa节点上使用内存的情况numastat -p <pid>(进程号)-m -s查看某个进程运行在哪个cpu上ps -o pid,psr,comm -p <pid>
2022-03-12 14:27:46
527
原创 xtables lock
写了一个python脚本,通过统计iptables里是否有某个端口的策略,判断某个端口是否开启。port_count = int((os.popen('iptables -L -n -v -w 1| grep -w 161 | wc -l').readlines()[0].rsplit(" "))[0])if port_count == 0: os.system("/usr/sbin/iptables -I INPUT -p udp --dport 161 -j ACCEPT")port_
2021-06-07 15:32:30
1859
原创 遍历某文件夹下的所有文件
for dirpath, dirname, filenames in os.walk(LOG_PATH): if len(filenames): //表示dirpath路径下有文件,filenames是该路径下所有文件的一个列表(list) else: //表示dirpath路径下没有文件使用字典时,如果希望字典输出时按照输入顺序可以使用OrderedDic...
2018-11-29 11:16:14
447
原创 零钱兑换 leetcode
思路:建一个动态数组dp,大小为amount+1,dp里面的值初始化为amount+1。dp[i]表示总金额i最少可以用dp[i]的零钱兑换,如果coins[j]比i小,那么总金额i可以由dp[i-conis[j]]再加上这枚零钱构成, dp[i]=min(dp[i],dp[i-coins[j]]+1)。如果dp[mount]=mount+1,则表示总金额mount不能由这些零钱兑换。...
2018-08-23 20:30:51
1704
原创 poj3461
一个kmp的经典题,题目大致意思是求单词W在文本T中出现的次数。#include <map>#include <string>#include <iostream>#include<math.h>#include<vector>#include<cstdio>#include<algorithm>us
2018-05-24 19:22:19
365
原创 电话号码分身
对于数ZERO(Z) TWO(W) FOUR(U) SIX(X) EIGHT(G)括号里是标识这些数的特殊的字母,再把这些数都去掉后对于ONE(O),THREE(T),FIVE(F),SEVEN(S)括号里的是识别这几个数的特殊字母,最后NINE(I),特别注意N不行,因为有两个N。最后将所有数转换为原始值再从小到大排个序就ok了。#include <cstdlib>#include...
2018-05-07 19:12:38
254
原创 顺时针打印矩阵
从外向里顺时针打印矩阵比如一个矩阵为:1 2 3 4 那么输出结果为:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 5 6 7 8 9 10 11 12 13 14 15 16把打印矩阵抽象为每次打印一个顺时针...
2018-05-03 20:54:15
333
原创 qwtplot放大限制
我对qwtpot放大进行了条件限制,当X坐标轴横坐标最大值-最小值<0.3时不允许再放大,即无论qwtplotzoomer如何框选都不会再放大。accept函数是qwtplotzoomer中的虚函数,我重新写了一个子类继承自qwtplotzoomer,然后重写了这个虚函数。这个虚函数的作用就是判断qwtplotzoomer框中的矩形框是否符合要求,如果符合要求就将矩形框中的部分进...
2018-05-03 17:15:35
1452
原创 qwtplot纵坐标轴移动问题
qwtplot纵坐标轴会因为纵坐标的值变小或变大而移动。比如纵坐标的值都为3位数的时候变到纵坐标的值有4位数时,纵坐标轴会左移。为了不让纵坐标轴移动可以用下面方法:QwtScaleWidget *scaleWidgetx = plot->axisWidget(QwtPlot::xBottom);//设置坐标边距const int fmh = QFontMetrics(scaleWi...
2018-04-17 19:48:16
2791
3
原创 寻宝路线
思路:动态规划,一个点的情况由上面一个点和左边点的情况递推得来。w[i][j]表示点(i,j)宝贝的最大值 w[i][j]=max(w[i-1][j]+maze[i][j],w[i][j-1]+maze[i][j]); v[i][j]表示走到点(i,j)一共有v[i][j]种方法。#include <iostream>#include<cstring>using nam...
2018-04-12 15:22:15
1990
原创 sizeof()的结果值
以前一直以为sizeof()就是求一个数组的长度,例如一个数组a[5],sizeof(a)=5;现在才发现大错特错。实践出真理,还是直接输出来的直观。#include<iostream>#include<cstdio>#include<cstring>using namespace std;struct num{ int a; ch...
2018-03-29 11:28:24
8517
原创 单件模式使用小技巧
为了使QT应用程序界面自适应屏幕的分辨率,要使QT界面上的所有控件根据一定的比例进行变大或者缩小。为了避免界面放大时图片失真,针对QT界面上的所有控件的背景图设计了两套。为了缩短代码量可以将两套图片的名称设置为一模一样。然后存放在两个文件夹中,这两个文件夹分别命名为1024和1366。这时可以定义一个系统参数QString dpi,在开始获取屏幕分辨率的时候进行判断,如果屏幕分辨率为4:3,则Par
2017-09-07 16:05:01
278
原创 QComboBox
当修改了QComboBox的字体后,下拉框中的选项都重叠在一起。在网上找了很久终于找到了一种简单有效的解决方案,在这里感谢那位大神。ui.stasortComBox->addItem(tr("圆盘砂"));ui.stasortComBox->addItem(tr("其他产品"));ui.stasortComBox->model()->setData(ui.stasortComBox->model
2017-07-03 15:09:05
471
原创 Qt lineEdit按下回车键获取信息
lineEdit本身自带returnPressed()信号,可以自己写一个槽函数,便实现了每次按enter键时可以获取lineEdit编辑器中的文本。QString s;connect(ui.stabuyEdit, SIGNAL(returnPressed()), this, SLOT(savestabuyEditinfo()));void HomePage::savestabuyEditinfo
2017-06-28 20:32:58
26607
10
原创 消除Qt运行边框
消除运行边框setWindowFlags(Qt::FramelessWindowHint); 消除运行边框后,运行的界面无法移动,如果想要它移动,可以添加下面的代码。.h文件private: QPoint offset;protected: void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMou
2017-06-28 15:16:10
492
MaxMind DB
2018-10-18
libmaxminddb
2018-10-18
Hadoop大数据处理技术基础与实践(第一版).pdf
2018-05-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人