- 博客(224)
- 资源 (3)
- 收藏
- 关注
原创 IT架构领域术语
ETL(Extract-Transform-Load)它是将大量的原始数据经过提取(extract)、转换(transform)、加载(load)到目标存储数据仓库的过程,主要应用大数据。
2024-02-29 11:56:04
441
原创 CRON表达式
cron表达式是一个字符串,由6到7个字段组成,用空格分隔。其中前6个字段是必须的,最后一个是可选的。在大部分使用cron的场景下, - * /?这几个常用字符就可以满足我们的需求了。从左到右,依次对每个字段指定相应的值,就可以确定一个任务的执行时间点和周期了。值可以由数字配合字符来组合。
2023-11-29 10:14:40
729
转载 Linux抓包框架对比
其实,类似DPDK的加速方案原理都非常简单,那就是完全绕开内核实现的协议栈,把数据包直接从网卡拉到用户态,依靠Intel自身处理器的一些专门优化,来高速处理数据包,你可知道在这类方案中,CPU可是专门处理数据包的,什么内核态,用户态,都无关紧要,采用map机制,专门的处理程序可以非常高效地在任意时间读取并处理数据包,想想CPU的处理速度换算成pps是什么概念吧,如果一个CPU什么都不干,专门处理数据包,那将是非常猛的线速处理了。当有新的数据包到达时,直接覆盖掉已经被用户空间读取过的数据包空间。
2023-11-08 11:46:56
1412
原创 ICMP差错包
要求分段并设置DF flag标志报文。对特定的TOS网络不可达报文。对特定的TOS主机不可达报文。由于过滤 网络流量被禁止报文。路由器的发现/选择/请求报文。基于TOS的网络重定向报文。基于TOS的主机重定向报文。IP报首部参数错误报文。
2023-09-25 16:58:44
1437
原创 debian系yum安装依赖rpm全部打包
yum --downloadonly --downloaddir=保存目录 install 预安装模块。yum install yum-utils安装repotrack命令。repotrack -p 保存目录 预安装模块。
2023-08-23 20:25:39
796
原创 linux查看硬件信息
型号:cat /proc/cpuinfo|grep name|cut -f2 -d:|uniq -c。单核逻辑core:cat /proc/cpuinfo|grep "cpu cores"|uniq。物理核:cat /proc/cpuinfo|grep "physical id"|uniq。线程数:cat /proc/cpuinfo|grep "processor"1、查看CPU信息cat /proc/cpuinfo或者lscpu。、系统、主板、处理器、内存、缓存等等硬件信息。4、查看外存/硬盘信息。
2023-03-31 11:37:53
2745
转载 linux下c动态库设置可执行入口
/注意你的连接器地址不一定是/lib64/ld-linux-x86-64.so.2这个路径哈 自己查找下你环境中的连接器地址。编译指定得c标准规范c11,static修饰方法为内联方法,对外不可见,ld无法检索到内敛方法,解决去掉static修饰。ld连接器使用-e 来指定程序的入口地址(显然此处指定入口地址为myso_entry)//动态库执行的入口函数 由编译器指定(-Wl,-e,myso_entry)原因排查:编译过程中gcc得-Wl,-e指定程序入口标识未找到。下面是动态库提供的两个对外函数。
2023-03-27 14:43:11
420
转载 GCC动态链接库规范和问题
对于动态链接库,实际的符号定位是在运行期进行的,在编译.so的时候,如果没有把它需要的库和他一起进行联编,比如libx.so 需要使用uldict, 但是忘记在编译libx.so的时候加上-luldict的话,在编译libx.so的时候不会报错,因为这个时候libx.so被认为是一个库,它里面存在一些不知道具体实现的符号是合法的,是可以在运行期指定或者编译另外的二进制程序的时候指定。(2) 连接库参数的顺序不对。(4) /lib 和 /usr/lib (64位下是/lib64和/usr/lib64)
2023-02-14 15:04:09
560
转载 TCP连接状态
一、连接状态LISTEN:服务器在等待进入呼叫SYN_RECV:一个连接请求已经到达,等待确认SYN_SENT:应用已经开始,打开一个连接ESTABLISHED:正常数据传输状态FIN_WAIT1:应用说它已经完成FIN_WAIT2:另一边已同意释放ITMED_WAIT:等待所有分组死掉CLOSING:两边同时尝试关闭TIME_WAIT:表示处理完毕,等待超时结束的请求数。LAST_ACK:等待所有分组死掉CLOSED:无连接是活动的或正在进行二、TCP状态转移要点 TCP协议规定,
2022-12-05 09:58:45
1691
原创 基础进程通信方式
1.无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。int fd[2];//0读出,1写入pipe(fd);int pid = fork();if(pid==0){ close(fd[1]); read(fd[0], buf, len);}else if(pid>0){ close(fd[0]); write(fd[1], buf, len);}2.高级
2022-05-13 10:23:32
168
转载 valgrind和kcachegrind使用运行分析
一、valgrind介绍valgrind是运行在Linux上的一套基于仿真技术的程序调试和分析工具,用于构建动态分析工具的装备性框架。它包括一个工具集,每个工具执行某种类型的调试、分析或类似的任务,以帮助完善你的程序。Valgrind的架构是模块化的,所以可以容易的创建新的工具而又不会扰乱现有的结构。valgrind主要包含以下工具: 12345678910Copy 1、memcheck:检查程序中的内存问题,如泄漏、越界、非法指针等。2、c
2022-04-21 15:26:46
1001
转载 python防止sql注入
python中拼接动态sql的多种方式在python中,对于这条动态sql的拼接至少存在以下四种方案%s占位符形式sql = "SELECT vip, coin FROM user_asset WHERE uid='%s' " % uidcursor.execute(sql)format形式sql = "SELECT vip, coin FROM user_asset WHERE uid='{}' ".format(uid)cursor.execute(sql)f strin
2022-04-14 15:13:21
3997
1
原创 Anaconda与conda、pip与conda的区别
Conda发行于2012年,是一个开源的、跨平台的包和环境管理工具。一、Conda和Anaconda的区别尽管Conda被打包在了Anaconda中,这两个是有着不同目标的不同事物。Conda和Anaconda经常会被混淆,可能是因为Conda被紧密地打包进了Anaconda和Miniconda中。Anaconda是一个软件发行版。软件发行版是一个预先建立和配置好的packages的集合,可以被安装在操作系统上,并被使用。Anaconda是由Anaconda公司开发的,一个包含PyData生
2022-04-02 17:32:53
3303
原创 代码规范个人版
代码规范分:1、可读性编写规范2、安全性执行规范个人规范标准:一、命名规范匈牙利命名法:广泛应用于Microsoft Windows这类环境中。驼峰命名法(Camel/小驼峰):第一个单词首字母小写,余下的单词首字母大写。帕斯卡命名法(Pascal/大驼峰):所有单词首字母大写。下划线命名法:下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。1、...
2022-02-25 15:04:18
419
转载 代码规范C#版
1规范目的 ……………………………………………………… 32适用范围 ……………………………………………………… 33代码注释 ……………………………………………………… 3 3.1 代码注释约定............................................ 3 3.2 模块头部注释规范...................................... 3 3.3 方法注释规范.......................
2022-02-25 14:53:04
995
原创 服务器证书格式和OPENSSL使用
根据不同的服务器以及服务器的版本,我们需要用到不同的证书格式,就市面上主流的服务器来说,大概有以下格式:.DER .CER,文件是二进制格式,只保存证书,不保存私钥。 .PEM,一般是文本格式,可保存证书,可保存私钥。 .CRT,可以是二进制格式,可以是文本格式,与 .DER 格式相同,不保存私钥。 .PFX .P12,二进制格式,同时包含证书和私钥,一般有密码保护。 .JKS,二进制格式,同时包含证书和私钥,一般有密码保护。DER该格式是二进制文件内容,Java 和 Windows ..
2022-02-23 15:10:28
331
转载 202202笔记本电脑性价比选择
2022 十大高性价比轻薄笔记本 查看>>2022 十大高性价比游戏本 查看>>十大高性价比笔记本电脑(2022年2月小虫排行榜)最近更新时间:2022-02-20作者:pc小虫原创 此文最后更新日期为:2022年2月20日 极速空间是电脑配置专业研究网站,小虫站长有27年电脑软硬件经验,接触过上万种不同配置的电脑,热心传授电脑知识。由于不少用户在购买笔记本时候有选择困难症,因此小虫站长把目前市场在售的笔记本做了一...
2022-02-21 15:10:39
3035
转载 安全漏洞SCAP规范标准
在日常的漏洞研究和管理中,通常会发现,不同漏洞平台、不同团队对于漏洞的编号、严重程度的定义通常会出现差异化。比如以下为漏洞常见的6个要素:我们以心脏出血漏洞为例:这些内容都是描述心脏出血的,可以看到不同的平台有不同的编号,类别也不同,影响组件的、等级、标题都是存在差异的,那么对于安全研究人员或者漏洞管理,就不可避免的需要去识别是不是同一个漏洞,然后需要自己去判定漏洞等级和类型等,不同的人或者团队,常常就会存在如以下的矛盾点:这缘于不同的知识面、对漏洞的认知、标准,所以才导致的..
2022-02-21 11:31:31
2980
转载 五大浏览器四大内核
只是用户看到仅仅只是浏览器本身,却很少能看到浏览器最核心的部分—浏览器内核。从第一款libwww(Library WorldWideWeb)浏览器发展至今已经经历了无数竞争与淘汰了。现在国内常见的浏览器有:IE、Firefox、QQ浏览器、Safari、Opera、Google Chrome、百度浏览器、搜狗浏览器、猎豹浏览器、360浏览器、UC浏览器、遨游浏览器、世界之窗浏览器等。但目前最为主流浏览器有五大款,分别是IE、Firefox、Google Chrome、Safari、Opera。浏览器最重
2022-01-24 11:07:46
19048
原创 NetBios协议
NetBIOS是Network Basic Input/Output System的缩写,严格来说它不是一个网络协议,而是一套API,为局域网内应用程序通信提供会话层(OSI七层参考模型)的支持。 NetBIOS有三种不同的实现分别为:NetBIOS Framse(NBF)协议;NetBIOS over IPX/SPX (NBX)协议;NetBIOS over TCP/IP (NBT)协议 前两个协议是在旧系统上的,NBF是在IEEE 802.2(数据链路层的协议)之上实现的,NBX是在IPX/SPX(与T
2022-01-18 15:05:50
4920
原创 找不到接受实际参数的位置形式参数
1、检查路径是否包含空格特殊转义字符等,加上“”或者\转义2、windows下powershell和cmd使用命令行有所不同 我使用powershell的copy命令提示改用linux语法的cp就行了
2021-12-06 14:46:04
30145
原创 linux磁盘空间扩容方案
方案1:临时挂载扩容(只可使用指定目录存储)1.fdisk -l2.fdisk /dev/xxxx new分区,定义编号1,分区大小默认,w保存3.mkfs -t ext3 /dev/xxxx4.mount /dev/sdb1 /要挂载的目录5.开机自动挂载vi /etc/fstab添加/dev/xxxx/要挂载的目录 ext3 defaults 01方案2:永久扩容到原存储结构主要命令df,fdisk,du物理卷操作:pvdisplay,pvcr...
2021-09-15 19:27:11
2948
原创 linux的so动态库可执行(节.interp)
代码如下mytest.c#include<stdio.h>#include<stdlib.h>//在elf格式中加入一个节.interp 此节含有 ELF 程序解析器的路径名//如果动态库不包括此节就不能被执行//注意你的连接器地址不一定是/lib64/ld-linux-x86-64.so.2这个路径哈 自己查找下你环境中的连接器地址const char ldpath[] __attribute__ ((section (".interp"))) = "/li...
2021-08-17 11:13:16
903
原创 添加用户并赋予 root管理员权限
用centos时,root用户一般都是超级管理员使用的,一般不轻易给别人,但是有时候同事安装软件时需要root账号,又不得不给,只能重新建一个用户,并赋予管理员权限。下面介绍创建用户并赋予管理员权限的方法步骤:1.新建用户,这里新建一个 summer 的用户adduser summer2.设置新用户密码passwd summer3.将sudoers文件的权限修改成可编辑chmod -v u+w /etc/sudoers4.使用vim编辑sudoers文件vim /..
2021-08-11 14:53:05
1177
原创 socket收包缓冲区研究
ioctl获取FIONREAD参数 raw_socket获取为原始分片包接收第一个包大小(icmp60,udp分片1514) udp_socket获取为协议栈组装包大小(udp发送方60k及为60k,上限为udplen(65535)) tcp_socket获取为协议栈组装包大小(tcp发送方第一个包长度,初始协商堆积上限tcp窗口基数16位满(65535),阻塞发包方,后滑动窗口大小可协商调整Window size scaling factor(初始握手窗口基数)* Window s...
2021-08-05 18:21:00
409
原创 多CPU和多核CPU对应多进程和多线程调度
目录cpu架构和工作原理 多核cpu和多cpu 架构 cpu的缓存 进程和线程 进程和线程在多核cpu,多cpu中的运行关系cpu架构和工作原理计算机有5大基本组成部分,运算器,控制器,存储器,输入和输出。运算器和控制器封装到一起,加上寄存器组和cpu内部总线构成中央处理器(CPU)。cpu的根本任务,就是执行指令,对计算机来说,都是0,1组成的序列,cpu从逻辑上可以划分为3个模块:控制单元、运算单元和存储单元。这三个部分由cpu总线连接起来。CPU的运行原理就是:控
2021-08-04 11:14:17
5383
原创 linux网卡处理数据包过程
网卡的 Ring Buffer 详解1. 网卡处理数据包流程网卡处理网络数据流程图:上图中虚线步骤的解释:DMA 将 NIC 接收的数据包逐个写入 sk_buff ,一个数据包可能占用多个 sk_buff , sk_buff 读写顺序遵循FIFO(先入先出)原则。DMA 读完数据之后,NIC 会通过 NIC Interrupt Handler 触发 IRQ (中断请求)。NIC driver 注册 poll 函数。poll 函数对数据进行检查,例如将几个 sk_buff 合并.
2021-08-02 16:11:19
1236
原创 Linux端口转发的几种常用方法
01、SSH 端口转发SSH 提供了一个非常有意思的功能,就是端口转发,它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。(1)本地端口转发ssh -fgN -L 2222:localhost:22 localhost(2)远程端口转发ssh -fgN -R 2222:host1:22 localhost(3)动态转发ssh -fgN -D 12345 root@host12、iptables 端口转发CentO...
2021-06-10 14:34:17
2840
转载 mysql分表分区
1、为什么要分表?数据库数据越来越大,随之而来的是单个表中数据太多。以至于查询速度变慢,而且由于表的锁机制导致应用操作也搜到严重影响,出现了数据库性能瓶颈。mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据进行操作。当出现这种情况时,我们可以考虑分表或分区。2、MySQL分表分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,每个表都对应三个文
2021-05-07 16:53:37
695
转载 mysql数据表分区
一、前沿知识1、分区表类型RANGE分区、LIST分区、HASH分区、KEY分区、子分区2、查询是否支持分区表mysql> SHOW VARIABLES LIKE ‘%partition%’;+———————–+——-+| Variable_name | Value |+———————–+——-+| have_partition_engine | YES |+———————–+——-+1 row in set (0.00 sec)3、MySQL分区处理NULL值的方式MyS
2021-05-07 16:52:10
172
转载 netcat和shell反弹测试
什么是反弹shell? 反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。为什么要反弹shell?通常用于被控端因防火墙受限、权限不足、端口被占用等情形。举例:假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,
2021-04-21 12:49:38
425
原创 c语言规范历史
1972年C语言诞生,C语言之父是丹尼斯·里奇(Dennis Ritchie),同时也是UNIX之父。C语言标准发布顺序:K&R C:1978年由布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)出版了《The C Programming Language》,这本书被C语言开发者们称为K&R,很多年来被当作C语言的非正式标准。人们称这个版本的C语言为K&R C。 ANSI C:1989年ANSI发布了C语言标准,被称为C89、AN
2021-04-15 00:25:20
248
原创 (坑)python的fetchone和fetchall
* fetchone() :返回单个的元组,也就是一条记录(row),如果没有结果 , 则返回 None* fetchall() :返回多个元组,即返回多条记录(rows),如果没有结果,则返回 ()***注意:在MySQL中是null,而在Python中则是None①查询出有多条数据时:cursor.fetchone():将只取最上面的第一条结果,返回单个元组如('id','name'),然后多次循环使用cursor.fetchone(),依次取得下一条结果,直到为空...
2021-04-10 19:24:59
2712
1
转载 红黑树检索/插入/删除
正文红黑树也是二叉查找树,我们知道,二叉查找树这一数据结构并不难,而红黑树之所以难是难在它是自平衡的二叉查找树,在进行插入和删除等可能会破坏树的平衡的操作时,需要重新自处理达到平衡状态。现在在脑海想下怎么实现?是不是太多情景需要考虑了?啧啧,先别急,通过本文的学习后,你会觉得,其实也不过如此而已。好吧,我们先来看下红黑树的定义和一些基本性质。红黑树定义和性质红黑树是一种含有红黑结点并能自平衡的二叉查找树。它必须满足下面性质:性质1:每个节点要么是黑色,要么是红色。 性质2:根节点是黑色。
2021-04-07 00:17:04
1171
原创 重定向动态库中的输出
问题已解决,解决方案如下:1.一个全局的文件描述符用来记录原来的标准输出文件描述符2.封装俩个函数,功能分别是打开和关闭标准输出文件描述符的函数3.封装一个输出函数,函数内部调用第二步封装的打开函数,然后输出,接着调用关闭函数4.main函数逻辑。首先调用第二步封装的关闭函数,接着如需输出信息则调用第三步封装的输出函数,代码如下:#include<stdio.h>#include <stdlib.h>#include<unistd.h>#include
2021-04-06 16:57:11
444
原创 Mystery.c
#include <stdio.h>main(t,_,a )char* a;{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,main(-86,0,a+1 )+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72?main(_,t,"@n'+,#'/*{}w+.
2021-03-31 21:41:20
245
softether_client-windows-x86_x64-intel.exe
2019-10-29
softether-windows-x86_x64-intel.exe
2019-10-29
GitHubDesktopSetup.exe
2019-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人