trzsz 使用记录
官方介绍:trzsz ( trz / tsz ) 是一款优秀的文件传输工具,和 lrzsz ( rz / sz ) 类似的、兼容 tmux 的文件传输工具。其实就是一个利用终端来传输文件的工具,可以用来取代 lrzsz,更多详情看官方文档:https://trzsz.github.io/cn/ 和 GitHub:https://github.com/trzsz/trzsz-ssh/blob/main/README.cn.md
macOS 下使用配置trzsz-ssh 是内置支持 trzsz 的 ssh 客户端, 可以替代 openssh,并且不依赖终端的支持。
安装1brew install trzsz-ssh
简单用法使用 tssh 替代 ssh 命令
支持 zmodem(可用于取代 lrzsz)配置新版 trzsz 内置支持 lrzsz 的功能,使用方法:
1tssh --zmodem root@x.x.x.x -p 22
或者在 ~/.ssh/config 里面配置
123Host * # 如果配置在 ~/.ssh/config 中,可以加上 `#!!` ...
Java程序被停止前自动dump内存快照
线上业务偶尔会出现重启现象,为了排查这个问题,决定在 OOM 的时候自动进行 dump 内存快照用于分析
针对 JVM OOM 的情况OOM 全称 “Out Of Memory”,表示内存耗尽。当 JVM 因为没有足够的内存来为对象分配空间,并且垃圾回收器也已经没有空间可回收时,就会抛出这个错误,解决 OOM 问题的一个思路:
假设发生 OOM 了,必然说明系统中某个区域的对象太多了,塞满了那个区域,而且一定是无法回收掉那些对象,最终才会导致内存溢出的,首先就得知道到底是什么对象太多了导致 OOM ,就必须得有一份 JVM 发生 OOM 时的 dump 内存快照有了 dump 内存快照,就可以用 MAT 之类的工具,或者在线工具来分析:https://memory.console.heapdump.cn/JVM 在发生 OOM 的时候并不是直接挂掉的, 而是在 OOM 之前会尽量去 GC 腾出来一些内存空间,如果 GC 后还是没有空间,放不下对象, 才会触发内存溢出的。JVM 给我们提供了一些参数可以在发生 OOM 的时候进行自动 dump 内存快照。: -XX:+HeapDumpO ...
无显示器环境下连接香橙派
连接香橙派(树莓派等其他派也类似)一般有以下几种方法:
插显示器、键盘鼠标直接进行操作
使用串口连接电脑,通过串口访问终端
通过网线连接路由器(路由器会通过 DHCP 分配一个 IP 给香橙派)从路由器后台获取到 IP 地址进行连接
通过网线直连电脑,电脑运行一个 DHCP 服务分配 IP 给香橙派,通过 IP 地址进行连接
通过官方的 orangepi_first_run.txt 文件来自动配置一个网口 IP 地址,电脑固定一个同网段的 IP,然后通过 IP 地址进行访问
我这里使用 tftpd64 来实现一个简单的 DHCP 服务。
配置如下:
设置好了以后,通过网线将香橙派和电脑直接连起来,这里就能看到有设备获取到了 IP 地址了。(不要设置 Def router,因为我们需要让网络使用 Wi-Fi 的网卡,有线网卡只是为了内网连接。)
192.168.88.1 就是香橙派的 IP 地址。可以用 ssh 连接了。
联网:
手机开热点,使用 nmtui 命令连接 Wi-Fi
香橙派配置VNC Server
vnc 大致可以分为两种,一种直接查看 TTY 上正在显示的桌面(和插上显示器显示的一致),另一种是创建一个新的桌面(即 可以在一台 linux 上打开若干个桌面供若干用户使用)
这里使用虚拟桌面 VNC,用的是 tigervncserver, 全程使用 orangepi 用户, 香橙派安装的是 Ubuntu 22.04 系统, 如果需要直接转发显示器的内容,请查看 Ubuntu安装配置VNC直接转发桌面显示
安装依赖包12345sudo apt-get updatesudo apt-get upgradesudo apt-get -y install xorg lightdm xfce4 tango-icon-theme gnome-icon-theme dbus-x11sudo apt-get install xfonts-base tightvncserver
启动 VNC Server1vncserver :1
display :1 refers to port 5901
重启 VNC Server12vncserver -kill :1vncserver :1
开机自启 ...
在Kubernetes环境下快速部署MySQL
收到个需求,开发团队希望快速启动一套业务环境,包括所有业务服务(部署在 Kubernetes 中)、MySQL 数据库、Redis 等中间件也一并创建出来并初始化,业务也需要自动连接上这些中间件。
本文记录一下在 Kubernetes 中部署 MySQL 并完成初始化操作(设置密码、创建数据库)
遇到的问题表名大小写敏感问题我们的业务需要数据库设置为表名大小写不敏感,即无论大小写都转换为小写,需要设置参数:
12[mysqld]lower_case_table_names=1
那么在容器中,参考官方文档,可以将 cnf 文件挂载到 /etc/mysql/conf.d/ 中。
创建多个数据库业务需要用到多个库,检查官方环境变量,有个 MYSQL_DATABASE 不过我测试可以创建一个库,不满足我们的需求。并且除了建库,可能还有其他的操作。
可以将你需要的 sql 文件放到 /docker-entrypoint-initdb.d 目录中,初始化的时候会自动执行。
完整的 yaml 文件1234567891011121314151617181920212223242526272829 ...
在Kubernetes中部署nacos 2.3.2
其他版本参考文档 在Kubernetes中部署nacos 2.1.0
nacos 官方文档写的太敷衍了,很多东西都需要自己去找,比如容器运行的时候,必须的环境变量都没有写全,遇到的一些坑整理了出来。
新版的变化鉴权逻辑优化官方说明:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
2.2.2 版本之前的 Nacos 默认控制台,无论服务端是否开启鉴权,都会存在一个登录页;这导致很多用户被误导认为 Nacos 默认是存在鉴权的。在社区安全工程师的建议下,Nacos 自 2.2.2 版本开始,在未开启鉴权时,默认控制台将不需要登录即可访问,同时在控制台中给予提示,提醒用户当前集群未开启鉴权。
部分环境变量默认值删除nacos 新版(2.2.1 之后删除了默认值)
可以查看 /home/nacos/conf/application.properties 这个文件,如果有环境变量名不确认也可以到这个文件里查询:
比如: server.port=${NACOS_APPLICATION_PORT:8848} NACOS_ ...
Kubernetes中的静态Pod
啥是静态 Pod静态 pod 就是不通过 Kubernetes 控制器直接运行的 pod,比如下面是一个 nginx 的静态 pod
123456789101112apiVersion: v1kind: Podmetadata: name: static-webspec: containers: - name: web image: registry.cn-hangzhou.aliyuncs.com/iuxt/nginx:1.27.0 ports: - name: web containerPort: 80 protocol: TCP
这种 pod 如果通过 kubectl delete pod static-web 来删除, 那么就直接删除了,不会像控制器一样重建 pod。
kubeadm 集群的组件二进制运行的组件二进制运行的组件就是不通过容器化,直接在机器上运行的组件,有 3 个组件 kubeadm kubelet kubectl ,其中:
kubectl 这个是客户端程序,不是必须的,如果需要用 ...
K8S的headless service
什么是 headless serviceheadless service 是配合 statefulset 控制器使用的,就是一个没有 ip 地址的普通 service
yml 配置12345678910111213141516171819202122apiVersion: v1kind: Servicemetadata: name: zk-hs labels: app: zookeeperspec: ports: - name: tcp-client protocol: TCP port: 2181 targetPort: 2181 - name: tcp-follower port: 2888 targetPort: 2888 - name: tcp-election port: 3888 targetPort: 3888 selector: app: zookeeper clusterIP: None type: ClusterIP
在 statefulset 里指定 ...
在Kubernetes中部署zookeeper集群
部署遇到的问题挂载目录没有写入权限
修改容器启动命令,查看到用户 id 是 1001
官方也有说明
解决方法 1: 使用 initcontainer 授权12345678initContainers:- name: init image: busybox:1.28 command: ['sh', '-c', "chown -R 1001:1001 /bitnami/"] volumeMounts: - name: data mountPath: /bitnami/zookeeper
解决方法 2: 增加安全上下文,使用 root 用户这么做会降低容器的安全性,不推荐!
123securityContext: runAsUser: 0 runAsGroup: 0
最终的 yaml 文件1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575 ...
Windows 配置自动登录
windows 中有部分应用程序需要登录当前账户才可以自动启动,或者嫌输密码麻烦,都可以设置自动登录,不用删除开机密码(删除开机密码也要鼠标点一下登录才可以登录)
修改注册表旧版本 windows 10 或者 windows 7 可以直接设置,但是新版本 windows 没有了这个选项,需要修改注册表配置
将下面文本保存成 reg 文件,双击导入。
1234Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device]"DevicePasswordLessBuildVersion"=dword:00000000
netplwiz 配置win + R 输入 netplwiz 打开用户管理界面。
取消勾选 要使用本计算机,用户必须输入用户名和密码 选项, 在弹出的框中输入当前用户密码。