Ceph 的 rbd 容量统计
Ceph 的 rbd 一直有个问题就是无法清楚的知道这个分配的空间里面到底使用了多少,使用 rbd info 命令查询出来的容量是预分配的总容量而非实际使用容量。在 Jewel 版中提供了一个新的接口去查询,对于老版本来说可能同样有这个需求,本篇将详细介绍如何解决这个问题。 目前已知的有三种查询方法: 使用 rbd du 查询(Jewel 版才支持) 使用 rbd diff 根据对象统计的方法进行统计 方法一:使用 rbd du 查询此命令在 Jewel 版中可用。 123root@mon:~# rbd du rbd/mysql-imgNAME PROVISIONED USED test 52.8047M 0 不过需要注意,执行此命令要求开启 rbd image 的如下属性: 1layering, exclusive-lock, object-map, fast-diff 具体使用可参考 这篇文章 。 方法二:使用 rbd diff12root@mon:~# rbd diff rbd/mysql-img | awk '{ SUM...
使用python-docx-template渲染word文档
使用python-docx-template渲染word文档快速开始To install using pip: 1pip install docxtpl or using conda: 1conda install docxtpl --channel conda-forge Usage: 123456from docxtpl import DocxTemplatedoc = DocxTemplate("my_word_template.docx")context = { 'company_name' : "World company"...
Golang 序列化和反序列化
序列化和反序列化Go 语言中,序列化和反序列化是将数据结构转换为字节流(序列化)以及将字节流转换回数据结构(反序列化)的过程。 Go 提供了多种方式来实现序列化和反序列化,常见的方式包括使用 encoding/json、encoding/gob、encoding/xml 等包。 以下是几种常见的序列化和反序列化方法: encoding/jsonJSON 是一种常用的数据交换格式,Go 提供了 encoding/json 包来处理 JSON 数据。 序列化(结构体 -> JSON)123456789101112131415161718192021package mainimport ( "encoding/json" "fmt")type Person struct { Name string `json:"name"` Age int `json:"age"`}func main() { p := Person{Name:...
搭建异地组网
前提需要公网服务器做中转。 服务端 使用Docker部署 docker-compose1234567891011121314151617181920212223242526272829303132333435363738394041services: wireguard: image: linuxserver/wireguard:latest container_name: wireguard cap_add: - NET_ADMIN volumes: - ./config:/config ports: - "5000:5000" - "51820:51820/udp" restart: unless-stopped wireguard-ui: image: ngoduykhanh/wireguard-ui:latest container_name: wireguard-ui depends_on: - wireguard ...
自定义ubuntu-22.04 ISO
自定义ubuntu-22.04 ISO构建条件 一个运行 Ubuntu 的设备(虚拟机也是可以的,但不推荐 WSL1/2,因为 WSL2 经过实际测试会出现一些问题)。 确保已经安装 xorriso、vim、wget、7zip软件包。 1apt install -y 7zip wget xorriso 打开终端。 全程需要 root 权限,请输入 sudo -s 进入 root 权限。 构建步骤下载 ISO从 Ubuntu ISO 下载页面下载版本为22.04的 Ubuntu 服务器映像 (ISO)。 我下载的镜像是ubuntu-22.04-live-server-amd64.iso 提取 ISO17z -y x ubuntu-22.04-live-server-amd64.iso -ocustom 注意!在 7z 命令中,没有空格。-o 引导文件移动引导文件到上级目录 1mv '[BOOT]' ../BOOT 生成新的ISO时,会生成新的引导文件 修改 GRUB1vim...
Nginx配置使用环境变量
在使用docker-compose建立nginx时,使用环境变量的方法在使用docker-compose部署nginx时,我们将解释如何在conf文件中使用环境变量的方法。请注意,由于不同于1.19版本之前和之后的nginx版本有所不同,请注意这一点。 使用最新版本的nginx(1.19或更高)您可以使用官方支持的方法来自1.19版本开始。以以下docker-compose.yml为例。 1234567891011version: "3"services: nginx_service: container_name: nginx image: nginx:1.19-alpine volumes: - ./templates:/etc/nginx/templates environment: - PORT=8080 ports: -...
Cubic(Custom Ubuntu ISO Creator)
Cubic简介Cubic(Custom Ubuntu ISO Creator)是一个用于创建自定义 Ubuntu ISO 的工具,它提供了一个图形用户界面,使得用户可以更方便地修改和定制 ISO 文件。 Cubic in Launchpad github.com/PJ-Singh-001/Cubic) Cubic 之所以能够将安装后的软件直接打包进去,主要是因为它使用了以下几个关键技术和步骤: 1. 基于现有的文件系统Cubic 允许用户从现有的 Ubuntu ISO 文件中提取文件系统,并在此基础上进行修改。用户可以在一个虚拟环境中运行和测试修改,这样可以确保所做的更改是有效的。 2. 使用 SquashFSCubic 使用 SquashFS 文件系统来压缩和打包文件。SquashFS 是一种只读的压缩文件系统,适合用于嵌入式系统和 Live CD。Cubic 可以将用户安装的软件和其他文件打包到 SquashFS 中,从而在创建的 ISO 中包含这些软件。 3. 自动处理依赖关系Cubic 可以自动处理软件包的依赖关系。当用户在 Cubic...
Tap-Windows install
什么是 TAP-Windows 适配器 TAP-Windows 适配器在 Windows 操作系统上提供虚拟 TAP 设备功能,VPN 软件需要它才能运行。 TAP 设备是完全由软件支持的虚拟网络内核设备,不受硬件网络适配器的支持。 TAP 驱动程序 用于 TAP 设备工作,它们设计为支持以太网隧道的低级内核。 tap-windows6:Windows TAP 驱动程序 什么是 TAP-Windows 适配器 v9?我在哪里下载它? 安装OpenVPN releases Windows下的驱动均通过签名证书来确认其安全性,首次安装时,因为系统没有存放驱动的可信证书,所以会弹出提示。而当二次安装时,因为之前系统已保存其证书,所以就不会弹出提示。 以下方法使用 tap-windows-9.21.2.exe(一键包) 和 tap-windows-9.21.2.zip(手动包) 为例 未安装过Tap适配器的朋友下载驱动压缩包 下载地址 ,解压(压缩包内i386对应32位系统,amd64对应64位系统) ps...
制作Linux服务
把java程序作为Linux服务启动制作Linux服务创建服务文件首先,您需要创建一个 .service 文件。通常,这些文件位于 /etc/systemd/system/ 目录下。 编辑服务文件12345678910[Unit]Description=My Custom ServiceAfter=network.target[Service]ExecStart=/usr/bin/my_executableRestart=on-failure[Install]WantedBy=multi-user.target [Unit] 部分定义了服务的描述和依赖关系。 [Service] 部分定义了服务的执行命令(ExecStart),以及在失败时的重启策略。 [Install] 部分定义了服务的目标 重新加载 systemd在创建或修改 .service 文件后,您需要重新加载 systemd 以使更改生效: 1sudo systemctl daemon-reload 启动和管理服务您可以使用以下命令启动、停止和查看服务状态: 启动服务: 1sudo systemctl...
Linux Setting Proxy
下载安装包GitHub网址: https://github.com/MetaCubeX/mihomo 安装包下载: https://github.com/MetaCubeX/mihomo/releases 参考文档: https://wiki.metacubex.one/ Web面板: yacd https://yacd.haishan.me/ Metacubexd https://metacubex.github.io/metacubexd Ubuntu 安装下载安装包1wget https://github.com/MetaCubeX/mihomo/releases/download/v1.18.7/mihomo-linux-amd64-v1.18.7.deb 安装1dpkg -i ./mihomo-linux-amd64-v1.18.7.deb 启动1systemctl daemon-reload && systemctl start mihomo 状态1systemctl status mihomo 配置订阅1curl -L -o...