Go程序编译后如何缩减大小

序言 在前文 Mac及Linux 如何使用自动化脚本登录JumpServer堡垒机及后面的服务器 中我们提到,使用 python 的 onetimepass 可能会出现偶尔 otp 不正确的情形,比如会生成 5位数 的otp密码。因此可以使用 Go 语言的代替。 本文就使用 MFA的实现代码进行缩减试验。 MFA 的 Go 代码 package main import ( "fmt" "os" "github.com/spf13/viper" "github.com/xlzd/gotp" ) // 从 %HOME%/.mfa.yml 读取个人……

阅读全文

构建Rust应用的Docker镜像

使用 Docker+alpine 构建 Rust 应用 对于前文 使用Rust+Rocket+Diesel+MySQL构建API应用 我构建的环境是 Mac. 然而,通常情况下,我们需要在linux服务器上运行我们的应用。然而跨平台编译需要各种各样的依赖,因此比较好的办法是在目标平台上编译应用,遇到的问题会相对少一些。 使用Docke……

阅读全文

使用Rust+Rocket+Diesel+MySQL构建API应用

前置条件 本机已经安装好 Rust 开发环境 本机 VsCode 已经安装好开发插件 创建工程 web-hook-rs cargo new web-hook-rs cd web-hook-rs 添加依赖 编辑 Cargo.toml 文件并添加项目依赖: [package] name = "web-hook-rs" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] # 快速的 Web Api 框架 rocket = { version = "0.5.0", features = ["json"] } # 读取配置信息工具包 config = "0.14.0" # 数据库 ORM,支持 mysql diesel = { version = "2.1.0", features = ["mysql", "chrono"] } # 读取 .env 配置工具包 dotenvy = "0.15"……

阅读全文

如何在Mac平台上将Rust项目编译为 alpine Linux 下的可执行程序

环境准备 需要 Mac 本机安装 python3(3.11及以上) 或者 brew 需要 Mac 本机安装 Rust(1.77及以上) 安装 zig 语言包及工具 # 安装 zig 语言包及工具,python方式 pip3 install ziglang 或者 brew 方式 brew install zig 安装 Rust 编译插件 # 安装 cargo-zigbuild cargo install cargo-zigbuild # 使用rustup添加 rustup target add x86_64-unknown-linux-musl 并在 ~/.cargo/config.toml 中增加配置 [target.x86_64-unknown-linux-musl] linker = "x86_64-linux-musl-gcc" 构建命令 在Rust项……

阅读全文

如何使用python获取Google MFA手机一次性验证码

编写生成 google mfa 验证的 python 脚本 需要使用的库是 onetimepass 网址: https://github.com/tadeck/onetimepass 安装命令: pip install onetimepass 安装好 onetimepass之后,编写生成mfa的python脚本 code.py #!/usr/bin/env python3 # -*- coding: utf-8 -*- import onetimepass as otp # type: ignore # 注意:如果你的电脑有多个python3版本,请在第1行选择合适的版本,同时确保 onetimepass 是安装在该解释器的环境下 # 否则可能会报……

阅读全文

使用trzsz-go代替rz命令上传文件夹

前言 在前文 Mac及Linux 如何使用自动化脚本登录JumpServer堡垒机及后面的服务器 中我们使用自动化登录脚本配合 rz和sz命令自动上传和下载文件。 使用rz和sz的优点是 rz和sz命令是内置的,无需额外安装,对于远程命令行操作来说异常方便,无需切换任何客户端软件就可以上传和下……

阅读全文

Mac及Linux 下 sed 命令用于替换文本的区别

使用sed替换文本而无需备份时 在制作自动发布的过程中,自动变更 docker-compose.yml里面的版本号的时候,使用如下命令 export APP_VERSION=1.1.16 sed -i "s/zentao:[0-9.]*\"/zentao:${APP_VERSION}\"/g" docker-compose.yml 总是报如下错误: sed: 1: "docker-compose.yml": extra characters at the end of d command 然而 将替换 -i 参数去除后观察,替换的结果又是正确的。 问了下 AI 回答如下: 如果在添加 -i 参数后出现错误,可能……

阅读全文

Mac及Linux 如何使用自动化脚本登录JumpServer堡垒机及后面的服务器

前置条件 本机需要安装 python3 (3.11) 本机支持 expect 命令及脚本 编写生成 google mfa 验证的 python 脚本 需要使用的库是 onetimepass 网址: https://github.com/tadeck/onetimepass 安装命令: pip install onetimepass 安装好 onetimepass 之后,编写生成mfa的python脚本 code.py #!/usr/bin/env python3 # -*- coding: utf-8 -*- import onetimepass as otp # type: ignore # 注意:如果你的电脑有多个python3版本,请在第1行选择合适的版本,同时确保 onetimepass 是安装在该解释……

阅读全文

如何搭建自定义docker registry及web管理界面

前置条件 服务器安装好 docker 软件版本要求 25及以上 服务器安装好 nginx/caddy前端代理软件(caddy的话使用v2,本例子使用) 启动本地registry服务 docker run -d -p 5000:5000 --restart=always --name registry registry:2 启动本地docker-registry-ui docker run -d -p 5100:80 -e "SINGLE_REGISTRY=true" -e "NGINX_PROXY_PASS_URL=http://host.docker.internal:5000" --add-host host.docker.internal:host-gateway --restart=always --name registry-ui joxit/docker-registry-ui:2 使用 Caddyfile 配置 caddy 编辑 /etc/caddy/Caddyfile 配置,用htt……

阅读全文

在 CentOS7 Linux上安装 caddy 服务器

参考官网教程 https://caddyserver.com/docs/install#fedora-redhat-centos 安装步骤 yum install yum-plugin-copr yum copr enable @caddy/caddy yum install caddy 等待安装完成即可。 更换 yum 国内镜像源 不过由于国外的 yum 源比较慢,通常我们换成国内的镜像源,速度更快: # 在 CentOS7 上使用阿里云的镜像 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 初始化缓存并加速 yum makecache 这样再 yum 安装软件的时候就飞快了。……

阅读全文