自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

单林敏的博客

www.wolfdan.cn

  • 博客(142)
  • 收藏
  • 关注

原创 linux常用命令以及常用知识库

查看服务端口的进程lsof -n -i :9092 | grep LISTEN# java 94330 root 99u IPv6 844902 0t0 TCP *:XmlIpcRegSvc (LISTEN)# 其实之前jps也发现 94330 运行着 kafka# 之后可以选择kill -9 94330...

2020-02-01 11:25:23 252

原创 我的vim使用技巧

ZZ保存退出,比按wq更快更舒服作为一个 vimer,Caps Lock 键根本就是多余的,而且在键盘中的位置根本不合理,一不小心就按到了 Caps Lock,然后就出错了。Esc 又是 vim 下使用最为频繁的按键,将Caps Lock替换成Esc真是再好不过了...

2020-02-01 11:20:59 245

原创 nvim透明

```luareturn { { "folke/tokyonight.nvim", lazy = true, opts = { transparent = true, styles = { sidebars = "transparent", floats = "transparent", } }, }}```

2023-09-02 15:52:29 446 1

原创 我的创作5周年纪念日

写blog其实是对知识的总结,能让自己更好的分享交流,让自己能和其他技术者一起交流迭代,并且把技术内容不断做好,让更多人通过技术改变生活。希望未来不断成长,做一个像耗子叔那样的技术人,给大家分享技术,分享观点。纪念自己的5周年,也怀念耗子叔。CSDN在 SEO 方面做得很好。

2023-08-06 15:23:24 260

原创 关于VScode解析leveldb的namespace报错

发现 VScode 读取 leveldb 的代码,其中 port 命名空间始终解析不了…然后试了很多 include 方法都没有效果。最终去找其头文件port. 发现是需要进行宏定义…

2023-08-06 15:12:29 301

原创 VScode跑gtest

sudo apt-get install -y cmake libgtest-dev && cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv lib/libgtest* /usr/lib/ && cd -**需要修改添加args `-lgtest`,以及gtest的依赖库 `-lpthread`**

2023-07-16 13:31:38 2610

原创 Ubuntu安装GCC10

- sudo apt upgrade - sudo apt install software-properties-common - sudo add-apt-repository ppa:ubuntu-toolchain-r/test- sudo apt update - sudo apt install gcc-10 g++-10 - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10

2023-06-08 19:52:00 1921

原创 RocksDB中sst_dump的编译使用

cmake编译会在 tool 目录下生成,直接 make 则是生成在 rocksdb 根目录。有可能要先编译rocksdb。./sst_dump --file=/tmp/rocksdb_tmp --command=raw

2023-05-27 16:39:17 302

原创 vscode-cpp IntelliSense解析开发包到系统路径而非指定的项目路径原因探索以及解决方案

因为确实**会进行递归操作,于是猜测是level的包递归路径太深时,可能会导致 IntelliSense 的性能下降或者缓存不足,于是导致其无法正确地解析代码,导致对于 includePath 支持的内容有些折中,所以最终导致出现较深的本地目录只有在精确命名时才能找到,否则认为本地没有,于是去找系统目录,发现系统目录有,于是显示系统目录的leveldb

2023-03-19 18:35:35 1014 2

原创 不用共享内存来通信,而用通信来共享内存的思考探索

go之所以不用共享内存来通信,而用通信来共享内存,是因为其协程之间都在一个进程里面,那么管道的读取性能就很好。而如果是进程间的通信,很有可能会出现高性能进程间管道性能还是远不如共享内存的情况出现。因此和分布式存储中常用的用共享内存来代替rpc调用优化通信效率刚好是相反的。

2023-02-26 15:09:48 195

原创 helm安装etcd-ha的失败的原因是bitnami不支持ARM架构-过程分享

helm安装etcd-haexec /opt/bitnami/scripts/etcd/entrypoint.sh: exec format error原来bitnami不支持ARM架构的服务器.......我吐血了

2023-01-08 20:32:35 1029

原创 kubeadm安装k8s的一些避坑建议

k8s官网的安装文章中讲解一些版本依赖关系因此安装指定版本的k8s,就需要安装适应版本kubeadm!!!拿1.22版本举例子curl -s https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages | grep Version | awk '{print $2}'`kubeadm init`第一次之后,后续需要`kubeadm reset`,`rm /var/lib/etcd`进

2023-01-01 15:02:34 378

原创 配置全局gitignore的原因与实操

有时候我们有些gitignore文件在每个工程中都是重复的,而且这些文件和工程本身没有关系,而是和操作系统相关的(比如macOS的`.DS_Store`)或者是和开发工具相关的一些东西(比如IDEA的`.idea`)所以就需要做全局的gitignore来处理这些,以保持每个工程的gitignore的整洁性vim ~/.gitconfig# 添加如下内容cat ~/.gitconfig | head -n 2[core] excludesfile = ~/.gitignore

2022-12-27 10:22:14 532

原创 sync.Map中amended和Delete删除中nil和expunged的理解

amended: 意思是被修改过的,为true就是表明dirty和readOnly中的map的数据不相同了readOnly中的map数据为nil: 就是正常的Delete()操作会让readOnly中的map数据值为nil,key还在readOnly中的map数据被标记为expunged(擦去;删掉): 就是只有在readOnly生成dirty数据时,如果遇到readOnly中标记为nil的值,则标记为expunged,并且不放在dirty中,没有对应key和值

2022-12-19 16:21:34 741

原创 小心weak_ptr的lock()生成的临时shared_ptr导致reset释放不掉内存

因为 weak_ptr 不会增加共享指针的引用计数,所以当共享指针释放内存时,weak_ptr 也会失效,无法通过 weak_ptr 访问内存。weak_ptr 是一种智能指针类型,它指向一个 shared_ptr 指向的内存,但不会增加共享指针的引用计数。访问 weak_ptr 指向的内存:std::shared_ptr sptr = wptr.lock();具体原因是: shared_ptr sptr = wptr.lock();会新建一个新的对应内存的引用,所以导致内存块不释放

2022-12-09 18:27:52 1495

原创 raft加速日志回退算法以及理解的基础_一些举例

一个折衷的解决方案是只使用conflictIndex(并忽略 conflictTerm),这简化了实现,但领导者有时最终会向跟随者发送比更新它们所必需的更多的日志条目。先发7过去,然后经过上面过程,发67过去,发现4,5还是不匹配,再发567过去,然后发现3匹配了,然后就可以直接覆盖了,因为之前3在同样的位置,先跳转到3的位置,把555发过去,然后发现冲突任期是3,S2就把4555发过去。所以确实返回5的下标,然后去覆盖。

2022-11-24 20:20:28 581

原创 ../labgob: “../labgob“ is relative, but relative import paths are not supported in module modo

go module模式下不能使用相对路径来导入包。因此把../labgob改成mit/src/labgob即可

2022-11-07 14:42:44 2210

原创 代码提交没有记录到github activity和contribute

最近发现自己一段时间提交的代码,都没有归类到github activity上,也没有在contribute图上显示,所以想搞清楚。自己是以前用的qq号的邮箱,后面用的qq邮箱的全英文的邮箱,所以把github主邮箱改了一下。

2022-10-01 13:21:20 582

原创 新版本的protoc使用grpc容易遇到的两个坑,gen gRPC,mustEmbedUnimplementedHelloServer

新版本的protoc使用grpc容易遇到的两个坑,gen gRPC,mustEmbedUnimplementedHelloServer--go_out: protoc-gen-go: plugins are not supported; use 'protoc --go-grpc_out=...' to generate gRPCcannot use HelloService (variable of type helloService) as type hello.HelloServer in arg

2022-09-18 17:34:24 1682

原创 golangci-lint在vscode的使用,以及配置的一些探索

Go 语言自带套件为我们提供了静态代码分析工具 vet,它能用于检查 go 项目中可以通过编译但仍可能存在错误的代码。在维基百科是如下定义 lint 的:但是如果想要更多,就可以用golangci-lint。golangci-lint 是一个 linter 的集成框架。它集成了非常多的 linter,包括了上文提到的vet,合理使用它可以帮助我们更全面地分析与检查 Go 代码VScode配置golangci-lint VScode使用golangci-lint golangci-lint检测nil...

2022-06-15 20:00:15 4123

原创 golang类型断言理解[go语言圣经]

Go 语言中的类型断言是什么?理解关键点是:首先,x.(T), x必然是一个接口,接口有3个属性具体类型的属性1. 接口动态类型2. 接口的动态值3. 接口的方法集合T取值:x取值:如果为nil,会panic,类型断言是一个使用在接口值上的操作。语法上它看起来像x.(T)被称为断言类型,这里x表示一个接口的类型和T表示一个类型。一个类型断言检查它操作对象的动态类...

2022-06-10 10:35:51 385

转载 【Golang】怎样优雅的清空切片

这是个有意思的问题,在此之前,博主从来没有考虑过这个问题,直到最近,终究还是与 清空切片 相遇了。场景是这样的:需要批量从influxdb中查询数据,这个批量查询的查询条件是通过遍历一个结构体切片的字段,不断append,为了避免一次查询量过大,影响查询效率。代码上做了如下处理:var queryIDs []int64for _,v:= range vList{ queryIDs=append(queryIDs,v.ID) if len(queryIDs)>50{

2022-05-18 19:52:39 2948

原创 VScode ssh免密登录设置

在本地机器生成密钥对(公钥+私钥)ssh-keygen -t rsa -b 2048 -C "[email protected]"将公钥内容复制到服务器的authorized_keys中# 本地机器cat ~/.ssh/id_rsa.pub# 连接到服务器# ssh [email protected]# 服务器vim ~/.ssh/authorized_keys# 将上面cat出来的内容,添加到authorized_keys中的新的一行编辑VScode remote-ssh的本地配置H

2022-05-16 19:40:21 567

原创 wsl安装的默认Ubuntu查看版本

# 进入wslwslfetch

2022-05-09 11:55:24 7561

原创 创建目录软链接却无法cd进入

ln -s go_learn ~/code/go_learnll ~/code/total 0lrwxrwxrwx 1 root root 9 May 7 18:51 go_learn -> go_learn/可以观察发现,这个软链接是链接到一个目录,但是自己却是一个文件,无法cd进去然后观察发现是go_learn/不是确定的路径所以就是ln的target需要使用绝对路径ln -s /mnt/c/Users/shanl/Documents/Code/go_learn ~/cod

2022-05-07 19:00:48 1235

原创 The commit failed because it seems to introduce trailing whitespace

速览解决方案yum install dos2unixdos2unix filegit cm "[ADD] ..."原因分析以及解决使用samba共享代码,或者是windows创建的文件,上传到linux服务器上,然后进行代码提交这时候报错lib/pthreadpool/xxx.h:236: trailing whitespace.+lib/pthreadpool/xxx.h:237: trailing whitespace.+#endif //lib/pthreadpool/xxx.

2022-04-14 16:44:03 1497

原创 windows10安装双系统后,删除linux,开机进入grub怎么办

输入 “exit” 这四个英文字母,然后回车,就可以进入windows10win + q然后输入 cmd, 然后以管理员身份进入命令行输入 bootsect /nt60 C: /mbr ,把C盘作为第一引导,不用grub引导上面不行用下面这个操作:https://blog.csdn.net/qq_41609385/article/details/121611081...

2022-01-28 20:17:15 2221

原创 vscode的remote-ssh无法连接,服务端日志[ExtensionHostConnection] The client has reconnected

关闭服务端⚡ 01/24|19:34:39  20220119T105255 ps aux | grep vscoderoot 16092 0.0 0.0 9564 1324 ? S 1月19 0:00 sh /root/.vscode-server/bin/0ba0ca52957102ca3527cf479571617f0de6ed50/server.sh --host=127.0.0.1 --enable-remote-auto-shutdown --p

2022-01-24 19:39:50 994

原创 docker容器改静态ip

自己网上找了,没有明确的步骤只知道可以改配置,操作一把,成功systemctl stop dockerdocker info | grep "Docker Root Dir"vim ${docker_root}/containers/1b1xxxxx/config.v2.json (修改ip)systemctl start docker

2022-01-23 15:29:15 2378

原创 git pull无反应

现象git pull 半天没有反应检测$ git remote -vorigin [email protected]:YYY/samba.git (fetch)origin [email protected]:YYY/samba.git (push)$ ssh -T [email protected] denied (publickey).处理$ vim ~/.ssh/config$ cat ~/.ssh/configHost cs.devops.sangfor.orgUser gitHos

2022-01-11 11:53:29 5520 2

原创 日志输出流较佳实践[较佳实践]

总体实践#!/bin/python3# coding: utf-8import sysimport loggingfile_handler = logging.FileHandler(filename="./xxx.log")stdout_handler = logging.StreamHandler(sys.stdout)handlers = [file_handler, stdout_handler]logging.basicConfig( level=logging.I

2021-12-18 14:55:35 244

原创 python抛出异常的实践[较佳实践]

抛出异常的最佳实践以前我都是用方法一进行抛出异常,但是方法一看不到详细的堆栈,很不爽,所以还是用方法二比较爽# 方法一LOG.error("cwd '{}' error, ex: {}".format(dir_name, ex))# 方法二LOG.error("stor '{}' error.".format(file_to_upload), exc_info=1)方法一2021-12-07 16:47:47,648.648 17898:140560392476480 ERROR __ma

2021-12-12 14:54:44 421

原创 ftp支持ipv6

给linux客户端创建ipv6运行vi /etc/modprobe.d/disable_ipv6.conf(没有这个文件可以pass),将options ipv6 disable=1修改为options ipv6 disable=0 后保存退出。运行vi /etc/sysconfig/network,将NETWORKING_IPV6=no修改为NETWORKING_IPV6=yes后保存退出。运行vi /etc/sysctl.conf做如下修改:#net.ipv6.conf.all.disable

2021-12-12 14:49:51 2753

原创 查配置文件中配置项,不存在则添加

查配置文件中配置项,不存在则添加function update_rgw_supervisor_stopwaitsec() { # 更新rgw的supervisor配置文件中的stopwaitsec logmsg "update rgw supervisor stopwaitsec config" rgw_supervisor_conf="/root/ceph-rootfs/etc/supervisor/conf.d/radosgw_client.rgw.eds.conf"

2021-11-30 11:48:06 611

原创 iov数组中间加值

iovec的结构首先观察iovec的存储结构,就知道iovec数组一旦填充了值之后,就无法在iovec的base的尾部添加字符了因为这样会破坏后面的len,所以想要加值,就要重新生成一个iovec数组然后复制,或者是在尾部添加尾部添加演示#include <fcntl.h>#include <stdio.h>#include <string.h>#include <sys/stat.h>#include <sys/types.h>

2021-10-31 14:50:26 172

原创 找到文本中某个字符串的上下几行中的含有的其他指定字符串的方法

eg:找result文件中,compound的上面十行里有create的文本块,并且向下显示10行(-B向上,-A向下)grep compound_end result -B 10 | grep create -A 10

2021-10-31 14:49:03 139

原创 samba共享linux目录出来写代码【共享目录有严格格式限制才能成功】

samba共享linux目录出来写代码背景因为有时候不好用remote-ssh,用samba共享出来可能会方便一点操作下午搞了整整2个小时,网上的链接都不给力,按照那个配置来配置都失败了我的错误配置如下[lm-dev] comment = test path = /root/lm/code_share # ...搞了很久还是一直报错无法访问资源自己也根据windows报错在cmd执行了很多如下命令C:\>net use * /del /y #

2021-10-17 14:04:24 96

原创 s3cmd常用命令和使用技巧

常用命令配置s3cmd: s3cmd --configure创建bucket:s3cmd mb s3://bucket01查看bucket:s3cmd ls查看bucket存量信息:s3cmd du s3://bucket01查看bucket基本信息:s3cmd info s3://bucket01删除bucket:s3cmd rb s3://bucket01上传对象:s3cmd put 对象名 s3://bucket01获取bucket对象列表:s3cmd ls s3://bucket0

2021-10-10 13:49:50 6236

原创 删除小于指定大小的文件

# 这么默认单位好像不是 Bytes, 而是Block块 == 512Bytes,导致我误删了许多,心痛# https://blog.csdn.net/qingfengxd1/article/details/102861396find ./ -size -621 -name "*smb*" -exec rm {} \;-size N[ bcwkMG] 查找指定文件大小的文件,1字节c,2字节w,块(512字节)b千字节k,兆字节M,吉字节Gfind --help查看用法man find可以查到

2021-10-10 13:46:57 315

原创 自己提交代码的几点教训

在工作中,如果要和别人协作提交代码,而且不方便改.gitignore的情况下,提交代码的时候要十分小心下面是自己的两次惨痛教训大工程不要直接git add -A有时候有许多的修改内容的时候,可能一个个提交比较麻烦,所以git add -A很方便但是这个操作容易在忘记git status检查的时候,把大量的编译文件,或者无关的文件提交到代码仓库这样会对别人造成很大的不方便,严重的时候会导致一段时间内整个分支无法继续使用编译出错的修复记得也要提交有时候工作很多打断的时候,比如老是有人找你的时候,你

2021-09-25 21:56:41 72

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除