- 博客(158)
- 资源 (2)
- 收藏
- 关注
原创 Golang多版本环境安装并存
注意这里我们按照平台下载,对应平台的Archive 类型压缩包。出现超时,或断开连接属于正常,应为他需要去。的历史归档版本中下载我们需要的GO环境。若未配置镜像该步骤可能超时或连接失败。将该压缩包放到刚才SDK的空文件夹中。此时将提示解压,成功后提示可以使用。会提示在 sdk目录中找不到。请先安装最新版本的Go,详见。以安装Go 1.11 为例。下载成功后将提示,可以使用。此时可以打开该目录查看例如。替换为需要安装的版本。下载已经归档Go程序。接下来下载Go的环境。
2024-08-13 10:54:14
366
原创 PXE自动平台 搭建 银河麒麟 UEFI x86_64 ARM64
请准备X86_64、ARM64 操作系统安装镜像,这里以 银河麒麟V10 举例。在此之前我们需要将操作系统的镜像文件中EFI文件拷贝到该目录中。,因此我们需要将我们的EFI启动引导文件放到该目录下。通过浏览器访问httpd映射的ARM64目录。也就是我们之前创建用于存储镜像的目录。把x86_64镜像中的所有内容复制。把ARM64镜像中的所有内容复制。注意,tftp默认的服务目录是。中的所有内容复制 相应目录中。注意:x86_64引导文件名为。x86_64 启动引导复制。httpd默认映射的目录为。
2024-06-21 17:50:53
1815
原创 定制银河麒麟镜像
上一步中我们成功的构建了一个自定义的镜像,但是在启动后仍然需要通过Anaconda界面配置主机名、语言、时区、分区、用户口令等操作,接下来章节将进入自动化安装选项。kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个配置文件(ks.cfg),在安装过程中,安装程序首先会去查找ks配置文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手动设定。
2024-05-20 11:02:51
1685
1
原创 银河麒麟 生成SM3加盐Hash root口令
生成/etc/shadow 中的口令或者是 kickstart中的口令注意下面命令只有在银河麒麟上才可用使用Perl脚本生成。
2024-05-15 10:14:50
365
原创 银河麒麟V10 ARM64 kubernetes 1.30.0 基于Containerd 离线搭建
可以看到当前集群中已经一个节点,但是处于 NotReady状态,这是应为没有安装CNI的原因。在安装前请检查你的libseccomp版本 是否大于 2.5.0,若低于2.5.0 请升级。镜像拉取完成后生成证书和相关配置文件,之后启动control-plane。重新加载服务,设置开机启动,启动containerd服务。这个阶段启动的kubelet由于没有配置,将不断重启。再次查看节点状态时,可以发现节点状态已经变为。节点名称为当前节点的名称,注意这里是主节点。设置开机启动,并立刻启动kubelet。
2024-04-29 18:01:15
1313
原创 Docker私有仓库搭建
Docker Hub 中registry 最新版本为 2.8.3,详见。在需要访问该私有仓库的设备上,调整Docker配置文件。复制到目标设备上,运行下面命令导入镜像。离线导出,方便在无法联网的设备上安装。从另外一台设备上从私有仓库拉取镜像。构建镜像,并打上仓库标签,查询一下仓库中是否存在。检查Docker环境。
2024-04-26 16:51:42
1851
2
原创 银河麒麟V10 ARM64 离线安装 新版Docker
由于 Docker官方只托管CentOS RPM源,银河麒麟V10 SP3 可以等价CentOS 8,我们替换一下仓库配置。目前docker已经安装完成,但是未启动,查询docker版本,检查安装是否成功。将下载的资源复制需要安装的服务器上,进入离线安装包目录中。设置Docker开机自启动,并且启动docker。配置Docker数据存储路径,已经仓库镜像地址。当前用户下的docker-rpm/创建Docker数据存储路径。下载镜像到本地,不安装。卸载已经安装的老版本。卸载已经安装的老版本。
2024-04-26 15:12:03
4061
原创 Go开发 入门以VSCode为例
Go在1.11 以后采用Go Module 来实现包管理,原理是采用以源代码的方式从远程仓库中拉取代码,大部分的开源项目仓库都位于Github,由于众所周知的原因Github的方式往往较忙,这时候我们就可以配置国内镜像的方式来加速依赖包的下载。Go官方的SDK已经很好用了,但是在开发过程我还可能使用到一些三方的包来加快我们的开发速度。该种方式有个缺点每次都得将Go环境中的变量改回来,不然编译的程序将一直是指定的平台。当我们完成程序的开发后我们需要将我们的软件编译为可执行程序。
2024-02-29 22:32:37
1813
1
原创 CentOS7 安装远程桌面
xrdp默认源仓库中是没有的,需要安装epel(Extra Packages for Enterprise Linux)仓库。若不关闭SELinux可能会造成xrdp无法启动。打开Windows上的RDP,点击。检查设置是否成功,关闭后提示。设置开机启动并启动查看状态。稍等片刻后将进入远程桌面。则认为已经成功运行。
2023-08-10 14:10:26
1133
原创 Linux IPIP隧道连通两个局域网
主机A、B通过eth0 网口连接的网络可以相互访问,现在需要连通两台主机的两个局域网络使。网口连接的网络中间跨越了多个路由,因此无法直接配置该网络中的路由来实现两个网络互通的效果。因此我们需要在A、B之间建立一条隧道,通过隧道传输两个网络的数据包。注意:动态加载的模块重启后不会自动加载,需要通过启动脚本方式加载。若无法PING通,请检查防火墙策略是否有配置DENY。现有两台主机,它们具有两个网口分别接入到不同网络中。在主机A上PING 主机B 的目的网络。快速清除所有策略来完成测试。
2023-08-08 11:37:45
920
原创 iptables 限制转发
可以通过设置内核参数来启动或停止内核的转发当开启了Linux内核转发开启内核转发后,当Linux主机收到不属于自己IP的数据包时,将会根据主机上配置的路由表进行转发,而不是丢弃数据包。如何数据包如何转发下一跳是谁,可以通过查询路由表route -n。
2023-06-26 10:26:32
1000
原创 银河麒麟V10 wireguard 编译
wireguard内部为了兼容不同的操作系统内核,使用了条件编译,似乎 麒麟的这个内核版本不在它的条件编译中,这里需要手动修复编译命令。我这里使用的操作系统是 银河麒麟V10,CPU为飞腾 ARM64。通过编译后我们使用 dkms 来安装模块,首先安装 dkms工具。成功后将会创建一个link,如下 请注意版本号 后续将会使用到。注意:5.6 以上内核不需要编译安装,已经集成在内核中。若编译无误,接下来就可以安装内核模块了,同样需要指定版本。接下来编译源码,名称为。安装后,查看是否安装成功。
2023-06-21 15:49:37
1658
3
原创 移除代码注释 软著代码材料
下面写了个简单的代码用于将所有包含某种后缀的文件的内容复制到同一个文件中。所生成除去注释的文件将会生成在当前工作目录中。将其复制到空的文件夹内。
2023-03-04 18:00:04
495
1
原创 MariaDB 数据文件 迁移
所在的分区下,现在该服务器的磁盘空间不补足了,现在扩展插入了一块新的磁盘,并且挂载到了。目录下,现在需要将原来的数据库数据迁移至该目录下。原MariaDB采用默认安装,安装在。文件,修改数据目录和socket。在此进入数据库查询数据存储目录。停止MariaDB服务。查询当前数据存储目录。
2022-11-24 11:46:56
1929
原创 Centos 7 磁盘分区及挂载 xfs
分析只是对物理磁盘的使用进行了划分,目前划分出来的存储区域。格式化完成后,可以看到显示关于该分区的一系列数据。这部分存储区域要被文件系统格式化后才可以被使用。[可选]当然也可以重启操作系统验证是否挂载成功。磁盘需要先分区再挂载,才可以让操作系统使用。挂载方式在系统重启后将会丢失,修改系统文件表。+ 磁盘名称,然后按照操作提示操作即可。这样服务器重启挂载也能正常,上创建了一个8G大小的分区。在开机时自动挂载该分区。
2022-11-24 11:01:33
7769
原创 Systemd Rsync 文件定时同步
填入下列内容,注意修改 rsync 的同步的源地址主机IP部分。在Backup上配置主机的免密登录,请参考。为了实现:每天凌晨3点,需要创建一个定时器。查看当前在运行的定时器,检验定时器是否生效。创建如下文件,文件名可自定义,后缀固定为。这里使用Systemd的timer服务。在主机和从机上都安装Rsync。上面的服务实现了:从。设置定时器开机自启动。
2022-11-17 15:41:22
834
原创 mariadb10.8 主主同步 相互复制
的数据库,检查当前数据库主机状态,可以看到master2的biglog和位置。的数据库,检查当前数据库主机状态,可以看到master1的biglog和位置。到这里 主机2 从 主机1 的复制已经完成,接下来以同样的方式配置 主机1。到这里 主机1 从 主机2 的复制已经完成,两个数据库已经可以相互复制。host2从host1同步的数据,配置host1的IP和同步用户。host1从host2同步的数据,配置host2的IP和同步用户。的数据库,创建专用于数据库同步的用户。配置文件加入以下内容。
2022-11-17 11:28:27
1161
1
原创 iptables 防火墙设置
清空所有规则,禁止输入、允许转发和输出,打开关键端口。如果需要可以使用下面命令删除已经开放的端口。重启iptables服务生效配置。如果需要可以使用命令关闭防火墙。查看配置当前防火墙配置情况。开机自启,并启动防火墙。
2022-09-21 14:05:07
853
原创 Linux limits.conf无效
此时如果我们通过SSH连接到服务端,再次检测会发现修改的数值又恢复为1024,该问题是由于SSH服务端进程相关设置导致,见。Linux 出现 "too many file open"错误,表示文件打开数上限。该方式在新的终端打开后你会发现又恢复1024,重启之后也是同样。重启SSH,重新登录SSH可以发现已经生效。此时可以通过,设置运行时。可以发现已经修改成功。...
2022-08-04 13:27:28
1044
原创 测试时大量TIME_WAIT CLOSE_WAIT
在进行TCP短连接测试时TCP客户端在段时间内向服务端建立大量的连接在程序运行一段时间后出现错误。这是由于客户端每建立一个TCP连接需要一个端口,即便客户端关闭了TCP连接完成了4次挥手,操作系统任然会保留一段时间的这个连接。见该问题可以通过配置Linux的端口重用参数来实现对处于。.........
2022-08-01 17:43:32
308
原创 Linux终端与SSH
SSH是一个较为广泛的概念他可以指SecureShell(SSH)协议也可以指ssh客户端/服务端SSH客户端/服务端是通过SSH协议进行通信的程序。为了方便区分,这里把SSH(大写)作为SSH协议,ssh(小写)作为客户端或服务端。那我们是怎么通过ssh客户端与Linux服务器进行交互的呢?这个就需要提到伪终端通过伪终端实现输入输出。通过网络和SSH协议完成数据从服务端到客户端的传输。简单来说就是[2]通过manpts可以查阅linux对伪终端的介绍。.....................
2022-07-29 15:48:00
1186
原创 Milkdown 无法使用表格
代码如下:在点击表格后发现出现Uncaught Error: Context “InsertTable” not found, do you forget to inject it?提示我们似乎没有注入表格相关的对象。这是由于 插件中没有集成表格,这里我们可以使用 该插件是Github私有的Markdown语法支持,他在内部已经集成了表格插件因此我们只需要替换,如下若你同时启用了与插件例如它们将会出现冲突出现该错误RangeError: Adding different instances of a
2022-07-07 22:49:36
590
原创 Milkdown 控件图标
在vite + vue3的项目中,使用Milkdown作为Markdown编辑框Milkdown.vue显示效果如图所有图标区域都变为了文字,并且挤在一起非常难看,这是因为 主题使用了google提供的 Google material icons从 Milkdown官方给出的示例 可以看到在文件中是引入了Google图标字体库的。这里我们的空间没有显示图标的原因就是没有Google图标字体库导致,我们可以和官方一样,直接在文件中增加一行CSS文件的引用就可以。index.html该种方式将会使用Go
2022-07-06 23:14:19
635
原创 ISO 32000-2 国际标准7.7
7.7 文档结构7.7.1 概述PDF文档可以被认为是在PDF文件的body部分的对象层次结构。在文档中顶层(root)的对象是文档目录(catalog)字典对象。(具体请参见 7.7.2, “文档目录字典对象”)。注意:在文档的抽象层次中多数的对象都是字典(dictionary)表示。在“第五章——PDF文档结构”中,说明了对象层次结构。示例:文档中的每一页使用一个页面对象(字典对象)所表示。这个页面对象含有引用到这个页面的所有内容(contents)和其他的所有属性(attributes),比如说它的缩
2022-06-28 23:42:29
891
原创 SSH协议学习笔记
RFC 4251 协议架构: 传输、认证、连接RFC 4253 传输协议RFC 4252 认证协议RFC 4254 连接协议RFC 4250 协议中出现的编号定义RFC 5656 SSH集成椭圆曲线[1]. 重新认识SSH(一) . Anon . 2019.04 . https://emous.github.io/2019/04/28/SSH/[2]. openssh . specs . https://www.openssh.com/specs.html[3]. SSH协议和原理浅析 . wal
2022-06-24 16:19:14
864
原创 单点登录SSO与OAuth2 方案
单点登录系统 Single sign-on (SSO) : 简单来说也就是一个在登录一个系统后不需要在重复登录其他系统的一种设计思想,其中较为著名的实现时CAS系统。OAuth2:是一个开放标准,该标准约束了一种用户让第三应用访问用户在某一个应用中的资源而无需提供用户名和密码的方式,简单来说就是一个3方应用认证和访问用户资源的一种较为规范的流程方法。SSO 与 OAuth2没有什么可比性,SSO是一种设计思想,OAuth2是一种具体资源认证授权的协议。我们可以设计一种机制,来实现单点登录系统,采用O
2022-06-20 09:39:44
1769
原创 Golang文件写入数据断电丢失
Golang在使用写入文件,或是直接使用文件接口读写文件时,在写入后立刻断电,重启后文件存在,但是为空,没有任何数据,造成了数据丢失,代码如下:原因及解决操作系统为了系统性能考,写入文件并不会直接写入到磁盘,而是写入到缓存中,当满足一定条件时,一次性写入磁盘。实际上操作系统也提供一些API可以将缓存写入磁盘,因此Golang对其进行了封装。使用时只需要在打开文件时增加 标识就可以完整代码如下:参考文献[1]. studygolang . Go语言标准库 - 6.1 文件 I/O . https:
2022-06-14 15:02:37
455
原创 Gin 根路径静态资源映射
前后端分离一站式解决方案。Gin静态资源代理中间件,该中间件由 Gin官方 gin-contrib/static 开发[1]. gin-contrib/static . https://github.com/gin-contrib/static
2022-06-13 21:16:35
1318
原创 gcc 可执行文件 相对路径动态库
问题描述目录结构如下:编译build.sh脚本为:gcc main.c -L. -ltlcpsocket -o main编译后运行可执行程序main,提示找不到动态链接库默认情况下Linux系统到/lib或 /lib64下寻找链接库,如果连接库在这两个地方没有那么就会出现这个问题,即便我们的动态链接库与可执行程序位于同一个目录内。我们使用gcc的-L参数指定了编译时的连接库所在目录位置,因此程序可以顺利编译。在运行时,程序启动时需要加载动态链接库,上述问题就是在运行时找不到链接库导致
2022-05-16 15:22:43
1333
原创 树莓派 Pico ADC温度测量
1.1 工作原理1.2 ADC基础原理介绍树莓派Pico内置5个ADC引脚,其中4引脚接入了内置的温度传感器。ADC(analogue-digital converter) 也即模拟数字转换器,也就是把模拟信号转换为数字信号。RP2040芯片上搭载的ADC能够支持12比特的数模转换: 000~2122^{12}212RP2040工作电压范围为: 0~3.3V。可以得到电压与ADC采集参数的换算关系如下:factor=3.3212factor = \frac {3.3}{ 2^{12}}
2022-05-06 21:47:49
3039
原创 银河麒麟 ARM架构 Qemu虚拟机
1. Qemu安装Qemu的安装请参考: https://www.qemu.org/download/#source下载源码,编译安装即可,注意银河麒麟上的gcc版本较低,请升级gcc,升级方式也为下载源码编译安装。qemu-system-aarch64 --version2. 虚拟机管理工具安装安装虚拟机相关依赖:yum -y install virt-install libvirt virt-manager 安装完成后可以在启动菜单看到如下程序:安装完成后启动管理工具。3
2022-05-06 15:11:57
10549
3
原创 UOS20 Qt5 系统状态图标Demo
1. 开发环境搭建系统:UOS20处理器架构:X86_64由于Qt和DTK支持跨平台,处理器架构均可以兼容,只需要把同样的代码在不同环境下进行编译即可。首先UOS20进入开发者环境sudo apt updatesudo apt-get install qtcreator qt5-default build-essential安装内容包括:Qt开发环境(头文件、动态库、Qmake等)Qt IDEgcc、g++、make、gdb…检验Qtqmake --version
2022-05-06 09:11:30
566
Update for Windows 7 (KB2533623)
2023-01-09
OpenOffice-4.1.6-rpm.tar.gz
2019-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人