改造windows terminal支持lrzsz
在 windows 下使用 xshell,如果执行 rz 或者 sz 是可以快捷上传/下载文件到本地的,这在使用堡垒机登录服务器会很有用,或者多层 ssh 嵌套的时候,某种极端的场景下,这可能是唯一的解决方案了。在 windows 下使用 xshell 连接服务器,这时候输入 rz,会弹出一个文件选择框: 但是在 windows terminal 下,是这样的: 无意中发现了一个开源工具,可以解决这个问题,开源地址是:https://github.com/qingyunha/zssh 安装通过源码安装123git clone https://github.com/qingyunha/zssh.gitcd zsshgo get zssh 默认可执行文件是在 GOBIN 中, 需要放到系统的 PATH 目录中。 二进制安装12sudo curl -L https://github.com/qingyunha/zssh/releases/download/v0.1.0/zssh_linux_amd64 -o /usr/local/bin/zsshsudo chmod...
jenkins优雅的增加一个windows节点
配置 windows这里我选择使用 ssh 来连接 windows,这样可以完全由 jenkins 来管理 windows 节点,比如 agent 的启动与停止、agent 的更新等都不需要登录 windows 来操作了。 安装 openssh server这里选择 moba ssh server, 下载地址:https://mobassh.mobatek.net/download.html moba ssh server 基于 cygwin 和原生 windows 有差别,特殊情况下执行结果不一致,我放弃了,转而使用原生 openssh 服务 GitHub 地址:https://github.com/PowerShell/Win32-OpenSSH/releases 最新版和 jenkins 兼容性有些问题,我用的是 v8.1.0.0p1-Beta 版, 下载 OpenSSH-Win64.zip 解压到 windows 的 C:\Program Files\OpenSSH 目录下,然后执行 (管理员权限运行...
iTerm2配置记录
快捷键macOS 的快捷键图标表示 控制键 说明 ⌘ command ⌃ control ⌥ option ⇧ shift 其中 control 开头的快捷键不止在 iTerm2 中可用,在所有 shell 终端中都是可用的。 标签(tab) 功能 快捷键 备注 新建标签 command + t 关闭标签 command + w 切换标签 command + ← 或 → 可以用 command + 数字键,切换到指定的 tab 上 切换全屏 command + enter 等同于 fn + f, fn + f 在所有 macOS 软件中都可用 分屏 功能 快捷键 备注 垂直分屏 command + d 水平分屏 command + shift + d 切换到不同的分屏 command + option + 上下左右 同时操作所有窗口 command + shift + i 操作打开的所有 tab 和分屏,...
Ingress Nginx 配置ssl双向认证
记录一下在 kuberentes 下使用 ingress-nginx 来配置 ssl 双向认证,可以参考其他几篇文章:使用certbot自动申请ssl证书 使用acme.sh来自动更新https证书 制作和使用自签名证书 Nginx配置SSL双向认证 创建 CA 证书执行以下命令,创建自签的 CA 证书。 1openssl req -x509 -sha256 -newkey rsa:4096 -keyout ca.key -out ca.crt -days 3650 -nodes -subj '/CN=Fern Cert Authority' 生成 server 证书 这里可以使用公共的 CA 签发的证书, 比如各大云服务商购买的证书。下面是自签证书的步骤。 生成 Server 端证书的请求文件1openssl req -new -newkey rsa:4096 -keyout server.key -out server.csr -nodes -subj '/CN=foo.bar.com' 使用根证书签发 Server...
Kubernetes创建一个只读用户
其实用到的是 RBAC 授权,官方文档在:https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/rbac/ 生成证书12345678# 生成私钥openssl genrsa -out dev.key 2048# 基于这个私钥生成证书请求openssl req -new -key dev.key -out dev.csr -subj "/CN=dev"# 使用CA证书签发openssl x509 -req -in dev.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out dev.crt -days 3000 通过证书生成 kubeconfig 配置文件12345678910111213141516171819202122232425262728# 生成用户kubeconfigkubectl config set-cluster kubernetes \ ...
使用image-syncer来实现容器镜像同步
image-syncer 是一个 docker 镜像同步工具,可用来进行多对多的镜像仓库同步,支持目前绝大多数主流的 docker 镜像仓库服务 支持多对多镜像仓库同步 支持基于 Docker Registry V2 搭建的 docker 镜像仓库服务 (如 Docker Hub、 Quay、 阿里云镜像服务 ACR、 Harbor 等) 同步只经过内存和网络,不依赖磁盘存储,同步速度快 增量同步, 通过对同步过的镜像 blob 信息落盘,不重复同步已同步的镜像 并发同步,可以通过配置文件调整并发数 自动重试失败的同步任务,可以解决大部分镜像同步中的网络抖动问题 不依赖 docker 以及其他程序 image-syncer 的官方地址是:https://github.com/AliyunContainerService/image-syncer, 是 golang 开发的, 官方没有给打包成 windows 版, 所以 windows 和 mac 用户需要自己编译一下。 编译安装 golang 环境略 开始构建1go build main.go 会在当前目录下生成...
shell脚本条件判断与比较运算
if 的基本语法:1234567if [ -f /tmp ];then echo "是一个普通文件"elif [ -d /tmp ];then echo "是一个目录"else echo "其他类型"fi 文件/目录 判断常用的 运算符 作用 -d 测试文件是否为目录 -e 测试文件是否存在 -f 判断是否为一般文件 -r 测试当前用户是否有权限读取 -w 测试当前用户是否有权限写入 -x 测试当前用户是否有权限执行 -s 文件长度不为零 选项 作用 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d DIR ] 如果 FILE 存在且是一个目录则为真。 [ -e FILE ] 如果 FILE 存在则为真。 [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。 [ -g FILE ] 如果 FILE...
利用Nginx的rewrite来实现自动跳转
任意链接都跳转到指定页面 需要部署一个服务在 Kubernetes 内, 需要实现通过 ingress 可以访问到, 本来是很简单的事情, 但是由于访问来源的 location 不确定,为了避免报错 404,所以用 Nginx 的 rewrite 来实现 Nginx 配置如下(所有 location 转发到 index.html): 12345678910111213server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /var/www/html; index index.html index.htm index.nginx-debian.html; location / { rewrite ^(.*) /index.html break; }} 自动跳转 https配置文件如下: 使用...
使用Obsidian配合Hexo写博客
obsidian 是一款好用的 markdown 编辑器, 用来记笔记还是不错的。 并且支持插件系统,可以通过模板来生成博客的 frontmatter, 省去了 hexo new 的操作 所以准备配置一下用 obsidian 来写博客。 相关文章:静态博客生成工具hexo使用typora更好更快地写hugo博客使用vscode来写hugo博客并处理图片插入问题 打开仓库首先使用 obsidian 打开 source/_posts 目录, 然后会生成一些配置文件。进入 _posts 目录 创建.gitignore 将一些临时文件排除掉。 1.obsidian/workspace.json 配置模板自带的模板插件功能太单一了, 我们关闭安全模式, 安装第三方插件 Templater 创建 Templates 目录,修改配置指定 Template 的目录。修改配置项 Template folder location 为 Templates 然后再此目录下创建 Front-matter.md 文件,此文件用作 hexo 的 frontmatter...
ArchLinux安装记录
官方文档 ArchWiki 已经写的很好了,但是每次安装的时候都要踩坑,所以开个文章记录一下。 磁盘分区与格式化123parted /dev/sda mklabel gpt mkpart ESP fat32 1M 513M set 1 boot on mkpart primary ext4 513M 100% printmkfs.fat -F 32 /dev/sda1mkfs.ext4 /dev/sda2 配置中科大的源配置文档: https://mirrors.ustc.edu.cn/help/archlinux.html 挂载与 chroot 操作chroot 后相当于进入了安装后的系统内进行操作 123456mount /dev/sda2 /mntmount --mkdir /dev/sda1 /mnt/bootpacstrap -K /mnt base linux linux-firmwaregenfstab -U /mnt >> /mnt/etc/fstabarch-chroot /mnt 常用配置配置时区12ln -sf...