java容器entrypoint.sh参数传递的隐藏陷阱
构建容器镜像对运维来说已经轻车熟路了,但是最近遇到个问题百思不得其解,准确的说就是手动执行 java -jar 带上所有参数,可以正常启动,但是打包成镜像就会报错: 先附上 entrypoint.sh 123456789101112131415161718192021222324252627#!/bin/bashif [ -n "$JVM_PARAM" ];then echo "JVM_PARAM: $JVM_PARAM"else JVM_PARAM="-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"fiif [ -n "$JVM_OPTS" ];then echo "JVM_OPTS: $JVM_OPTS"else JVM_OPTS="-XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly...
在 Hyper-V 下启用 Fedora 41 的增强会话模式
安装一些基础包12sudo dnf install -y hyperv-toolssudo dnf install -y xrdp xrdp-selinux 配置 Fedora12345678910111213141516171819202122232425systemctl enable xrdpsystemctl enable xrdp-sesman# use vsock transport.sed -i_orig -e 's/port=3389/port=vsock:\/\/-1:3389/g' /etc/xrdp/xrdp.ini# use rdp security.sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini# remove encryption validation.sed -i_orig -e 's/crypt_level=high/crypt_level=none/g'...
Logstash 写入 ES:借助自定义模板优化数据映射与存储
我们的业务场景是 ES 存储的都是一些不太重要的日志,但是对存储比较敏感,但是查看了 ES 索引都是默认创建了一个副本的。这会造成存储空间翻倍。现在通过调整 logstash 配置来实现创建出来的索引应用自定义配置,比如可以实现 30 天前的日志自动清理,默认不创建副本等。 创建生命周期策略在 ES 上创建一个生命周期策略,定义索引保留 14 天。 1234567891011121314151617PUT _ilm/policy/user_monitor_point-retention-policy{ "policy": { "phases": { "hot": { "min_age": "0ms", "actions": {} }, "delete": { ...
使用Python识别验证码 ddddocr
GitHub 地址:https://github.com/sml2h3/ddddocr 安装 1pip install ddddocr 如果 windows 安装报错:ImportError:DLL load failed: 找不到指定的模块。需要安装 vc 运行库:https://aka.ms/vs/16/release/VC_redist.x86.exe https://aka.ms/vs/16/release/VC_redist.x64.exe 基本使用: 1234567import ddddocrocr = ddddocr.DdddOcr(show_ad=False)image = open("example.jpg", "rb").read()result = ocr.classification(image)print(result)
解决PyCharm终端使用zsh powerlevel10k主题时的乱码问题
powerlevel10k 是 zsh 上很好看的主题,我一直是在 wsl 里用,配合 Windows Terminal 很好看,不过在 PyCharm 里打开会乱码,可以通过修改控制台字体为支持 powerline 的字体,不过还是不完美,有时候还有 BUG。 想了下,我平时都是在 Windows Terminal 上用的,那么可以让使用 Windows Terminal 的时候显示成花里胡哨的主题,用其他软件比如 PyCharm 或者 VScode 的时候,换成朴素的主题。看了下,在 Windows Terminal 上有个特殊的环境变量 WT_SESSION 和 WT_PROFILE_ID ,看名字应该是和 Windows terminal 有关,测试了下也确实如此,那么可以修改 ~/.zshrc 来实现。 12345if [[ $WT_SESSION ]]; then ZSH_THEME="powerlevel10k/powerlevel10k"else ZSH_THEME="robbyrussell"fi 此时显示如下:
Nacos 2.0.3 集群升级为 2.1.0
2.0.3 版本的 BUG详细 bug 在 GitHub 上有,比如: issue 链接见:https://github.com/alibaba/nacos/issues/9332https://github.com/alibaba/nacos/issues/8492 我们遇到的 bug 简单一句话总结就是:集群方式部署的 nacos 其中一个节点重启后可能会有节点数据不一致的现象(服务注册与服务发现里面的服务数量不一致)比如说一个服务注册到了 nacos 中,我在 nacos 网页控制台 服务管理 服务列表 里查看有 10 个服务注册进来,刷新下网页可能就变成了 9 个,再刷新又变成 10 个,这种情况就是 nacos 的多个节点数据不同步了(nacos 配置中心数据是从 MySQL 取的,不受这个 bug 的影响),这种情况可以直接将 nacos 副本数设置成 1 临时解决,想要彻底解决我们验证了升级到 2.1.0 就能修复。 升级数据库表结构 nacos 官网文档写的太敷衍了,版本之间的差异需要自己找,哪怕你上个 flyway...
群晖NAS部署zerotier内网穿透访问
前言完成这个教程,你主要需要完成以下流程: 在 NAS 上启用 SSH 创建一个持久的 TUN 安装 Docker 设置 Docker 创建一个持久的 TUN如果有 /dev/net/tun 就不用再执行了 使用 SSH 连接到你的 NAS,切换为 root 身份 创建一个开机自启动脚本: /usr/local/etc/rc.d/tun.sh 1234567891011# 创建开机自启动脚本echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh# 添加可执行权限chmod a+x /usr/local/etc/rc.d/tun.sh# 手动执行一下/usr/local/etc/rc.d/tun.sh# 查看是否有tun设备ls /dev/net/tun 安装 Docker 到你的 NAS 上直接到套件中心去安装。 1mkdir /var/lib/zerotier-one 创建一个容器,这里将它命名为...
管理Redis内存占用
淘汰策略如果设置了合适的淘汰策略,Redis 会根据以下几种策略选择性地移除某些键,腾出内存空间(淘汰策略需要和内存限制配合使用) 常用淘汰策略说明 策略 说明 volatile-lru 从设置了过期时间的键中,移除最近最少使用(LRU)的键。 allkeys-lru 从所有键中,移除最近最少使用(LRU)的键。 volatile-random 从设置了过期时间的键中,随机移除键。 allkeys-random 从所有键中,随机移除键。 volatile-ttl 从设置了过期时间的键中,移除即将过期的键(优先移除 TTL 短的键)。 noeviction 当内存超过限制时,直接返回错误,不再执行新增操作(这是默认策略)。 设置方法: 在 redis.conf 文件中添加或修改: 1maxmemory-policy allkeys-lru 或通过命令行动态设置: 1redis-cli config set maxmemory-policy allkeys-lru 内存限制设置 maxmemory 123maxmemory 4gb#...
使用Python识别验证码 Muggle OCR
最近发现个 ddddocr,识别率很高,识别速度还很快:使用Python识别验证码 ddddocr 以前用过什么 pytesseract 识别效果很差,还需要电脑上安装 Tesseract OCR 的软件,但是使用下来,效果不好,后面也用过 PaddleOCR 可以识别,但是识别速度比较慢,成功率也不高。后面又看到了这个开源工具,吹牛逼比较厉害,号称自己是验证码识别的最高境界,就试试看。官方的 GitHub 地址是:https://github.com/litongjava/muggle_ocr 效果展示 环境OS: Windows 11Python: python-3.10.10-amd64 安装这个开源程序在 pypi 仓库上被移除了,需要在 GitHub 上将源码包下载下来安装。 下载到本地,解压后,打开 cmd 命令提示符, 123456REM 创建虚拟环境python -m venv venvREM 安装muggle_ocrcd muggle_ocr-mainpython setup.py install 报错处理error: numpy 2.2.1 is...
nginx反向代理的context path
返回请求 uri在 Nginx 中,可以使用 $request_uri 来表示请求 uri, 配置如下; 123456789server { listen 80; server_name example.com; location / { add_header Content-Type text/html; return 200 "$request_uri\n"; }} 这里再使用另一台 nginx 反向代理到这台 nginx 就可以测试请求的 uri 了。 测试 nginx 的反向代理 content path1123location / { proxy_pass http://192.168.200.12;} 结果是 curl localhost/aa/bb/ –> http://192.168.200.12/aa/bb/ 2123location /aa { proxy_pass...