boost的编译和安装
下载 boost 的源码包后解压,在代码目录下有一个 bootstrap.bat 文件,双击运行生成 b2.exe 文件
在 cmd 窗口下,可以通过 b2 --help 查看一些命令以及参数,如 install 指令的 -prefix 参数等
双击 b2.exe 进行缺省编译, 缺省编译的是 minimal,也通过 b2 install 进行缺省编译安装,库以及头文件安装到 C:\\Boost 目录下
如果需要全量编译安装,需要要带上参数 --build-type=complete ,这将会生成动态库和静态库文件(部分没动态库)
如果已经全量编译过了,然后再进行安装也是需要使用 --build-type=complete ,不然也只会安装 minimal 的部分
thread库 对于 thread 库,完整的 …
火车头采集插件开发
火车头采集软件的插件支持多种语言开发,如php、c#、python,这里以 python 作为开发语言编写插件
但从官方文档来看,没有找到很详细的插件编写手册,仅有c#版本的 https://www.locoy.com/index/guide#插件说明文档.html
从网上搜索到的资料来看也没有很详细的介绍,但都是在如下的一个框架基础上编写
# -*- coding: utf-8 -*- from w3lib import html from bs4 import BeautifulSoup from scrapy.selector import Selector from urllib.parse import urljoin from urllib import parse import sys …
接入zookeeper进行主从切换
部署zookeeper服务端 下载最新版本的zookeeper执行文件 https://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/
将下载的包解压到 /usr/local/apache-zookeeper-3.7.0-bin 目录下,将conf下的zoo_sample.cfg复制一份并重命名为zoo.cfg
修改配置 增加data目录,并修改zoo.cfg的数据文件目录配置项 dataDir=/usr/local/apache-zookeeper-3.7.0-bin/data
在zoo.cfg文件的最后增加配置项
server.1=10.32.5.41:2888:3888
server.2=10.32.5.81:2888:3888 …
终端ssh免密码登录
单台机器配置免密码登录 需要 A 通过 ssh 免密码登录到 B,假设 A、B 机器的账户都是 root,生成公私钥的命令为 ssh-keygen,主要参数有
-t 指示生成的密钥类型,主要的密钥类型有 dsa、ecdsa、ecdsa-sk、ed25519、ed25519-sk、rsa
-P 表示密码,-P ’’ 就表示空密码,也可以用 -N 参数,和 -P 参数是一样的意思,不用该参数可以交互输入密码
-C:额外注释,可以填写用户名/邮箱等
-b:指定密钥的长度位数,不指定的话默认 2048 bits
-f 参数指定输出的公私钥文件名,如果不指定的话默认输出在 /root/.ssh/ 目录下
在 A 机器生成公私钥对(在用户的 home 目录下下生成 .ssh 目录,.ssh …
根据动态库生成对应的lib文件
一个 dll 动态库文件,编译的时候需要链接该库文件,如果没有提供 lib 文件,得先从 dll 生成对应的 lib 文件
这里以 Trojan-Qt5-Core 工程中的 trojan-qt5-core.dll 为参考例子,原工程的处理脚本如下
dumpbin /exports trojan-qt5-core.dll > exports.txt echo LIBRARY TROJAN-QT5-core > trojan-qt5-core.def echo EXPORTS >> trojan-qt5-core.def for /f "skip=19 tokens=4" %%A in (exports.txt) do echo %%A >> …
ubuntu下ssh连接慢的问题分析
服务端配置修改 使用终端工具 SecureCRT 连接本地虚拟机 ubuntu ,发现连接超级慢,大约耗时 10 秒左右,实在无法忍受
网上搜到的一些信息看 /etc/ssh/sshd_config 导致的 ,修改了两个配置,但是效果还是一样的慢,没有任何改善
UseDNS no GSSAPIAuthentication no 使用 win 下的命令行窗口进行 ssh 连接,发现没有任何延时,换一个工具如 winterm 连接也没有任何延时
但是 SecureCRT 连接却延时 10s 左右,那么只能是 SecureCRT 中的配置导致的
修改 SecureCRT 配置 经过一番调研,发现 SecureCRT 下的 GSSAPI 配置导致的,需要将 Method 修改为 MS Kerberos 才行,其他的都不 …
控制台重定向输出详细说明
0 表示标准输入
1 表示标准输出
2 表示标准错误输出
> 表示重定向
一般来说,1> 通常可以省略成 > 如下:
ls a.txt b.txt 1>file.out 2>file.err 可省略写成
ls a.txt b.txt >file.out 2>file.err 另外进行分析日志时候,清空日志常用这种方式,本质上也是重定向清空
[hello@localhost ~]$ >test.log 2>&1 意思是把标准错误输出重定向到标准输出
& 是一个描述符,如果 1 前不加 &,> 符号后面会被当成一个名称为 1 普通文件,结果就是标准错误输出重定向到文件名称为 1 …
批量检测机器是否可达
准备一个配置文件 ip.txt ,每一行记录分别是 ip port(或者port统一命令行读取),中间用空格间隔
将下面 c++ 代码编译生成执行文件 testconn
#include <stdio.h> #include <unistd.h> main(int argc, char** argv) { if (argc != 3) _exit(0); int fd[2]; alarm(1); pipe(fd); close(fd[1]); dup2(fd[0], STDIN_FILENO); dup2(fd[0], STDERR_FILENO); execlp("telnet", "telnet", argv[1],argv[2], 0); } 增加脚 …
Appveyor自动化构建github项目
需要在构建的仓库目录下提供 appveyor.yml 的配置文件
windows 平台提供的构建软件列表参考: https://www.appveyor.com/docs/windows-images-software/
MacOS 和 Linux 平台的可以点击对应的标签查看其提供的构建软件列表
https://www.appveyor.com/updates/2022/04/02/
https://www.appveyor.com/updates/2022/04/03/
查看更新日志显示,Qt 5.14.2 已经被 remove 了,当前可用的 qt 版本 https://www.appveyor.com/docs/windows-images-software/#qt
5.14.2 版本被 remove …
RC4算法实现原理
参考视频 https://www.bilibili.com/video/BV1994y1o7tj/
密钥 k,如值为 012345
初始 s 表,长度256数组,各原始值依次为 0,1,…,255
空间 t 表,长度为256数组,值依次为密钥 k 的扩容256长度,值依次为 012345012345…
依据 t 表打乱 s 表的元素,打乱的规则如下
j := 0 for i :=0; i < 256; i++ { j = j + s[i] + t[i] //计算待置换的 j 位置 s[i], s[j] = s[j], s[i] } 得到打乱后的 s 表后,计算密钥流,buff为待加密或解密的缓冲
var i, j int = 0, 0 for h:=0 ; h<len(buff); h++ { i …
C盘扩容以及磁盘管理
大部分情况下,通过 windows 的磁盘管理就可以完成 C 盘扩容操作,但是一些情况下必须使用工具才行
也就是磁盘管理中无法对目标卷进行删除操作,这里可以使用一款迷你兔的分区管理工具
迷你兔是一款强大的分区管理工具,官网地址 https://www.minitu.cn/pw-free/
可以使用来进行 C 盘扩容操作,分区管理操作完之后,需要点击左上角的应用才会生效
Linux下的软连接和硬连接
创建文件 磁盘分两部分:inode区块,和数据区块
inode文件在inode区块中,数据文件和目录文件在数据区块中
数据文件:就是实际的数据内容,根据内容大小,可能会出现多级索引的情况
目录文件:文件的内容就是该目录下的文件名,以及该文件名对应的inode号码
aaa 为实际文件, bbb 为软连接名称,ccc 为硬连接名称,不带参数 s 表示创建的为硬连接
原文件 aaa ,软连接 bbb ,硬连接 ccc;删除 aaa,bbb无法读取,ccc 正常读取
ln -s aaa bbb ln aaa ccc 实现原理 硬连接为在当前目录下,增加一条文件名记录,对Linux文件系统来说并未新增文件
该文件名和原文件名都有相同的inode号码,然后inode的计数会加1
软连接是新增了一个文件,这个文件有新 …
nginx下多站点部署配置
多站点域名部署的情况下,如 aaa.com 和 bbb.com,每个域名下面又有多个子域名,都部署在同一台主机上
现在希望 nginx 能配置实现如下的逻辑:
1、禁止直接输入 ip 地址进行访问,包括 http 和 https
2、输入 http 访问的时候跳转到对 https 访问
3、对每个域名下不存在的子域名访问的时候,跳转到对应的主域名访问
禁止直接输入 ip 地址进行访问 为了实现禁止通过 ip 访问 https ,得配置一个 server 的 ssl 域,而 ssl 还需要提供对应的证书以及密钥,不然 nginx 会报错
这里可以不使用域名站点的证书和密钥,通过命令专门生成一个证书和密钥提供给禁止 ip 访问 443 的 server 域使用
生成命令如下
openssl req -x509 …
win10虚拟机安装
安装 vmware 软件 这个安装没有什么好说的,网上的安装教程也比较多,一路无脑操作就行
下面是我在使用 vmware 的版本,有需要可以下载获取
链接:https://pan.baidu.com/s/1FTLfjjShDDpsOu1uXLxq7g 提取码:h5sm
制作 win10 安装包 这里不推荐使用第三方制作的安装包,通常这些安装包都会夹带私货,可以自行制作一个 win10 的安装包,非常简单
打开微软的官方地址 https://www.microsoft.com/zh-cn/software-download/windows10
下载 win10 安装媒体
下载得到一个 MediaCreationTool_22H2.exe 的执行文件,双击运行该文件,其中下面这步选择
“为另一台电脑创建安装截止(U …
halo 系统的构建
为了构建 halo 在本地运行以便测试,请按照官方的指引进行构建,这里记录的仅是部分重要的信息
以下基于 2.20.9 版本进行本地编译
halo 项目构成 halo 为 java 开发的项目,并集成了前端 vue 的项目,主体分为两部分
1、application 为后端项目
2、ui 为前端页面项目
编译前端代码 使用 idea 打开 halo 项目后,在配置中选择 halo:ui [build] ,然后点击开始按钮进行构建
构建完毕最后下面显示信息 “BUILD SUCCESSFUL” ,ui 的目录下生成了一个 build 文件夹,dist 中显示有一个 console 和 uc 目录
编译后端代码 使用 idea 打开 halo 项目后,在配置中选择 halo [bootJar] ,然后点击开始按钮进 …