离线syslog踩坑记录
博主需要改动`syslog-ng`的源码,并重新编译`syslog-ng`。但是编译环境存在各种受限。首先是是在内网环境中,不能在线安装相关依赖,再者就是编译环境的`Linux`发行版是定制的,虽然应该是基于`CentOS`改过来的,但是系统上做了啥处理,不说`yum`和`dnf`,最基本的`rpm`都没有,通过下载`rpm`包再安装到本地的方法都不能实现了。最后就是编译环境的那些基础C库都老的很,编译`syslog-ng`达不到最低版本要求,因此啥依赖都得自己下载源码编译过来。`pkg-config` 是一个用于管理和查询已安装库的工具,特别是在编译和链接阶段。它简化了编译和链接过程中的配置工作,确保编译器和链接器能够找到和使用正确的库及其依赖项。GLib是一个通用的跨平台 C 语言库,主要用于提供基础设施功能和通用编程工具。它是 GNOME 桌面环境和 GTK+ 库的基础,广泛用于各种 C 语言程序中。报错:configure: error: Glib headers inconsistent with current compiler setting. You might be using 32 bit Glib with a 64 bit compiler, check PKG_CONFIG_PATH
关于DNS的学习记录 其一
最近要做关于DNS服务收发包的业务,但是对于DNS实现的细节却不是很了解,于是抽空学习一下并记录一下。
DNS简介DNS(Domain Name System,域名系统)是互联网的重要组成部分,它将人类易读的域名(如google.com)转换为计算机易于处理的IP地址(如142.250.72.14) ...
Linux中Cron定时任务的踩坑
前言博主现在有个需求,需要定时执行一个脚本,于是在Linux环境中自然想到了cron。简单描述一下cron:
什么是 cron 服务?cron 是 Unix 和类 Unix 操作系统中的一个守护进程,用于根据预定的时间表自动执行任务。这个服务是操作系统的核心部分,允许系统管理员和用户计划周期性任务, ...
Linux中对CPU加压的思考
问题引出有个需求,要对服务打流量,从而让CPU占用达到峰值,进而查看系统的状态。但是由于基础设施的原因,只能通过ab打流量,因此我能打的流量的受限于客户机的带宽。这个时候怎么加ab的并发量和请求数,也只能让CPU的占用达到一个阈值。这个时候自然就想到直接上服务器,给它的CPU加压,达到加压测试的效果 ...
师大残酷青春物语
来深圳已经一周了,上周还在长沙和猪猡们在寝室开impact,现在就自己(其实也是双人间)在酒店,人去楼空,人走茶凉,物是人非,老男人干涩的眼眶里面也忍不住流出来两行浑浊的泪水。(不是)
师大最后的夜晚17号中午实验室吃了个饭,21级22级的都叫上了,卿哥勇哥也有,不过强哥得去批卷,没能够酣战一场,吃 ...
EasyExcel项目部署Linux服务器上报错空指针异常
EasyExcel项目部署Linux服务器上报错空指针异常;错误码为500的内部服务器异常,异常类型是:`java.lang.NullPointerException`,也就是空指针异常,而且报错信息竟然是无可用信息。日志根本看不出是什么原因造成了这个接口的错误。那么就看后台的日志吧,因为是通过`docker`部署的,那么直接`logs`查看日志:java.lang.NullPointerException: null at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219) at sun.awt.FontConfiguration.init(FontConfiguration.java:107) at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774) at sun.font.SunFontManager$2.run(SunFontManager.java:431) 结合上面的分析,可以知道,问题的根源就是:`alpine`的精简系统里面缺失基础字体!
解决JS通过Blob下载文件时文件损坏的问题
解决JS通过Blob下载文件时文件损坏的问题,当使用`Axios`发送请求时,设置`responseType`为`Blob`会告诉`Axios`将响应数据以二进制形式返回,而不是默认的JSON格式。如果不指定`responseType`,`Axios`将默认以JSON格式解析响应数据。结合上面所说,我的理解是二进制流本身是有个对数据要求很严格,而没指定返回类型,默认就把二进制流转成了字符串,而之后又把字符串转回`blob`对象的时候,中间可能就产生了意外的错误,比如编码格式啥的,进而造成二进制流损坏,也就是要下载的文件也损坏了;而从一开始指定为`blob`对象,接收到的二进制流是什么就是什么,中间不会再有变化。
Butterfly解决Gitalk密钥暴露的问题
Butterfly配置Gitalk,个人博客解决Gitalk密钥暴露的问题,点击登录Github的时候一直加载,最后直接超时报错了。用Koa来中间转发一下请求,然后利用函数接口部署成一个在线服务,一开始就感觉直接配置文件中写死Gitalk的secret是十分不安全的。
Nuxt项目中非VUE组件实现获取Store/Router
需求起源楼主在做的一个NuxtJS项目中,发现前后端令牌TOKEN之间存在着过期时间不匹配的问题,也就是当我的后端Redis里面的令牌过期了之后,前端还存在着这个令牌,这个时候前端再去请求后端接口的时候就出错了,分析之后很快就找到了登录的时候设置了哪些缓存:
12345678910111213141 ...
由MinIO引伸的对下载文件名的思考
问题描述在博主接手的一个项目中,对于文件的储存使用了MinIO,文件的上传和下载原本已经都实现了,测试也没有问题。
如图,图片预览:但是最近博主想上传一个Execl文件作为信息导入模板,上传并没有问题,文件也能下载,但是下载的文件名却十分的奇怪:
和我上传的文件名完全没关系啊,顿时博主一头雾水。
...