tar 包爆炸了

很狼狈的一件事情,到手一个 tar 压缩包之后。直接运行 tar -xvf 罪魁祸首.tar 结果就像一个在我混乱的卧室里 爆开一包薯片一样,撒的到处都是,一点点捡可能还捡不干净,有一些文件的修改日期十分远古,看不出来是否来自压缩包内 首先,快捷查看包内容可以使用 tar -tf myfile.tgz 或者 -tzf -t(或 –list)表示列出内容。 -z 表示使用 gzip 解压(因为 .tgz 通常是 .tar + gzip 压缩) -f 指定档案文件。 如果想看得更 “详细”(包括权限、时间戳、大小等),可以加 -v: 1 2 3 (base) yangr@172-16-99-32-Dev:/data/yangr$ tar -tf meetingasr.tgz meetingasr/ meetingasr/app/ 这样可以看到包里的顶层是一个文件夹,而不是那一堆薯片碎,现在直接解压会在当前目录解压到这个名字的文件夹内 但是,如果某一天忘记看一眼里面的结构,我之前会使用 -C 参数 change to directory tar -xzf archive.tgz -C /path/to/targetdir 但是这个参数需要先有指定的目录才能执行,这很麻烦 所以还有一个方案就是使用 --one-top-level tar -xzf myfile.tgz --one-top-level=newdir 这样无论包里是什么结构,都会把内容解压到 newdir/ 目录内。 那如果我已经是上面例子 有一个文件夹,那岂不是会变成 newdir/meetingasr/ 了 所以还能用 tar -xzf myfile.tgz --strip-components=1 剥掉包里路径的第一级目录 ...

November 12, 2025 · 1 min · 73 words · Ray

Harbor push unauthorized

Harbor push unauthorized 我真的快没招了,这个东西折磨了我很久了 具体是什么情况 如下 1 2 3 4 docker push hub.szmckj.cn/hotpotcat/perm-check:zz The push refers to repository [hub.szmckj.cn/hotpotcat/perm-check] 17eec7bbc9d7: Unavailable error from registry: unauthorized to access repository: hotpotcat/perm-check, action: push: unauthorized to access repository: hotpotcat/perm-check, action: push 如这里所见。我在公司的服务器上装了 VMware Harbor 来多地同步docker镜像,同时存一些基本镜像避免网络问题。 但是无论我在哪里都愉快使用的时候,在家里的Windows遇到了这个 无法push的问题 首先在Harbor的配置处 我检查了项目名称,全小写,一个字母没错,我检查了登录的用户。是我在UI登录的账号密码。我logout再login 也依旧报错。我检查了 项目的策略。这是一个干净的仓库,创建人是我,并且我上午在公司的mac 和 ubuntu服务器成功推送过。 甚至他是个公开仓库啊 怀疑系统,用wsl试试 还是这样 怀疑代理问题 关了clash,切换了旁路由,还是这样子 gpt叫我搞个机器人账号试试 我都拉满权限了还是这样 看后台日志 到这一步我其实严重怀疑是网络问题。但是我没证据所以还是先看后台日志,好在看了 显示已折叠代码(29 行) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 registry | ::1 - - [29/Oct/2025:15:38:14 +0000] "GET / HTTP/1.1" 200 0 "" "curl/8.12.0" nginx | 127.0.0.1 - "GET / HTTP/1.1" 200 785 "-" "curl/8.12.0" 0.001 0.001 . harbor-portal | 172.31.0.9 - - [29/Oct/2025:15:38:17 +0000] "GET / HTTP/1.1" 200 785 "-" "curl/8.12.0" registry | 172.31.0.4 - - [29/Oct/2025:15:38:19 +0000] "GET / HTTP/1.1" 200 0 "" "Go-http-client/1.1" harbor-portal | 172.31.0.4 - - [29/Oct/2025:15:38:19 +0000] "GET / HTTP/1.1" 200 785 "-" "Go-http-client/1.1" registryctl | 172.31.0.4 - - [29/Oct/2025:15:38:19 +0000] "GET /api/health HTTP/1.1" 200 9 nginx | 172.16.99.6 - "HEAD /v2/hotpotcat/perm-check/blobs/sha256:17eec7bbc9d79fa397ac95c7283ecd04d1fe6978516932a3db110c6206430809 HTTP/1.1" 401 0 "-" "docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \x5C(windows\x5C))" 0.003 0.003 . nginx | 172.16.99.6 - "HEAD /v2/hotpotcat/perm-check/blobs/sha256:1b44b5a3e06a9aae883e7bf25e45c100be0bb81a0e01b32de604f3ac44711634 HTTP/1.1" 401 0 "-" "docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \x5C(windows\x5C))" 0.005 0.005 . nginx | 172.16.99.6 - "POST /service/token HTTP/1.1" 405 19 "-" "containerd/2.1.4+unknown" 0.002 0.001 . harbor-core | 2025-10-29T15:38:26Z [INFO] [/server/middleware/security/robot.go:71][requestID="55026fa7-8ad3-4fac-a387-d3db6484ac5c" traceID="aa950751535cc6b087bf5ec533951b10"]: a robot security context generated for request GET /service/token nginx | 172.16.99.6 - "GET /service/token?scope=repository%3Ahotpotcat%2Fperm-check%3Apull&scope=repository%3Ahotpotcat%2Fperm-check%3Apull%2Cpush&service=harbor-registry HTTP/1.1" 200 1010 "-" "containerd/2.1.4+unknown" 0.025 0.025 . nginx | 172.16.99.6 - "HEAD /v2/hotpotcat/perm-check/blobs/sha256:1b44b5a3e06a9aae883e7bf25e45c100be0bb81a0e01b32de604f3ac44711634 HTTP/1.1" 404 0 "-" "docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \x5C(windows\x5C))" 0.005 0.005 . nginx | 172.16.99.6 - "HEAD /v2/hotpotcat/perm-check/blobs/sha256:17eec7bbc9d79fa397ac95c7283ecd04d1fe6978516932a3db110c6206430809 HTTP/1.1" 404 0 "-" "docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \x5C(windows\x5C))" 0.022 0.023 . registry | time="2025-10-29T15:38:26.164978329Z" level=info msg="authorized request" go.version=go1.23.8 http.request.host="hub.szmckj.cn:443" http.request.id=e560674b-c756-457d-8294-cbc6e4d85504 http.request.method=POST http.request.remoteaddr=116.30.100.87 http.request.uri="/v2/hotpotcat/perm-check/blobs/uploads/" http.request.useragent="docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \(windows\))" vars.name="hotpotcat/perm-check" registry | time="2025-10-29T15:38:26.168010906Z" level=info msg="response completed" go.version=go1.23.8 http.request.host="hub.szmckj.cn:443" http.request.id=e560674b-c756-457d-8294-cbc6e4d85504 http.request.method=POST http.request.remoteaddr=116.30.100.87 http.request.uri="/v2/hotpotcat/perm-check/blobs/uploads/" http.request.useragent="docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \(windows\))" http.response.duration=11.300209ms http.response.status=202 http.response.written=0 registry | 172.31.0.4 - - [29/Oct/2025:15:38:26 +0000] "POST /v2/hotpotcat/perm-check/blobs/uploads/ HTTP/1.1" 202 0 "" "docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \\(windows\\))" nginx | 172.16.99.6 - "POST /v2/hotpotcat/perm-check/blobs/uploads/ HTTP/1.1" 202 0 "-" "docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \x5C(windows\x5C))" 0.022 0.021 . nginx | 172.16.99.6 - "PUT /v2/hotpotcat/perm-check/blobs/uploads/9d9e11fd-abe0-456e-9b9c-d5da9a020239?_state=MvL4ZmK09_2yH7zJzwMYeiWVk_vgc4FBa4AHfNLaNs97Ik5hbWUiOiJob3Rwb3RjYXQvcGVybS1jaGVjayIsIlVVSUQiOiI5ZDllMTFmZC1hYmUwLTQ1NmUtOWI5Yy1kNWRhOWEwMjAyMzkiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMjUtMTAtMjlUMTU6Mzg6MjYuMTY1MTIxNTg2WiJ9&digest=sha256%3A1b44b5a3e06a9aae883e7bf25e45c100be0bb81a0e01b32de604f3ac44711634 HTTP/1.1" 401 190 "-" "docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \x5C(windows\x5C))" 0.003 0.003 . registry | time="2025-10-29T15:38:26.184206457Z" level=info msg="authorized request" go.version=go1.23.8 http.request.host="hub.szmckj.cn:443" http.request.id=487e9723-c8f5-4646-af27-b301329de187 http.request.method=POST http.request.remoteaddr=116.30.100.87 http.request.uri="/v2/hotpotcat/perm-check/blobs/uploads/" http.request.useragent="docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \(windows\))" vars.name="hotpotcat/perm-check" registry | 172.31.0.4 - - [29/Oct/2025:15:38:26 +0000] "POST /v2/hotpotcat/perm-check/blobs/uploads/ HTTP/1.1" 202 0 "" "docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \\(windows\\))" registry | time="2025-10-29T15:38:26.186531266Z" level=info msg="response completed" go.version=go1.23.8 http.request.host="hub.szmckj.cn:443" http.request.id=487e9723-c8f5-4646-af27-b301329de187 http.request.method=POST http.request.remoteaddr=116.30.100.87 http.request.uri="/v2/hotpotcat/perm-check/blobs/uploads/" http.request.useragent="docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \(windows\))" http.response.duration=10.154146ms http.response.status=202 http.response.written=0 nginx | 172.16.99.6 - "POST /v2/hotpotcat/perm-check/blobs/uploads/ HTTP/1.1" 202 0 "-" "docker/28.4.0 go/go1.24.7 git-commit/249d679 kernel/6.6.87.2-microsoft-standard-WSL2 os/linux arch/amd64 containerd-client/2.1.4+unknown storage-driver/overlayfs UpstreamClient(Docker-Client/28.4.0 \x5C(windows\x5C))" 0.022 0.022 . registry | 172.31.0.4 - - [29/Oct/2025:15:38:29 +0000] "GET / HTTP/1.1" 200 0 "" "Go-http-client/1.1" registryctl | 172.31.0.4 - - [29/Oct/2025:15:38:29 +0000] "GET /api/health HTTP/1.1" 200 9 harbor-portal | 172.31.0.4 - - [29/Oct/2025:15:38:29 +0000] "GET / HTTP/1.1" 200 785 "-" "Go-http-client/1.1" harbor-portal | 127.0.0.1 - - [29/Oct/2025:15:38:33 +0000] "GET / HTTP/1.1" 200 785 "-" "curl/8.12.0" registryctl | ::1 - - [29/Oct/2025:15:38:33 +0000] "GET /api/health HTTP/1.1" 200 9 registry | 172.31.0.4 - - [29/Oct/2025:15:38:39 +0000] "GET / HTTP/1.1" 200 0 "" "Go-http-client/1.1" harbor-portal | 172.31.0.4 - - [29/Oct/2025:15:38:39 +0000] "GET / HTTP/1.1" 200 785 "-" "Go-http-clien 这是进行push时看到的日志。太长啦。感谢G老师再次拯救我 G老师分析如下 ...

October 29, 2025 · 4 min · 698 words · Ray

lua打日志

ℹ️ Note lua 有很多有趣的语法和平时的不一样,比如这个打印字符串 1 2 3 4 5 local banner = string.rep("★", 12) .. " ORDER_NO: " .. orderNo .. " " .. string.rep("★", 12) session:consoleLog("ALERT", banner .. "\n") session:consoleLog("ALERT", string.rep("=", #banner) .. "\n") 这里的写法有几个点 session:consoleLog中 : 有点像 . 就像是 session.consoleLog一样,他第一个默认参数就是 self,ALERT就是红色的 ERROR 那种样子的样式 随后 .. 是 lua 的字符串连接符号 string.rep(A,B)函数的用处就是返回 A 字符串重复 B 次 这里就是用 #banner 获取banner的长度。然后重复

September 25, 2025 · 1 min · 58 words · Updated: December 10, 2025 · Ray

内网穿透浅尝

阿里云 ubuntu 服务器 * 1 windows 11 家里电脑 * 1 有开发环境在家里电脑。需要在公司调用,简单搭一个 在ubuntu上部署frps(服务端) 查看 github 最新的 release 版本 下载 1 2 3 wget https://github.com/fatedier/frp/releases/download/vX.Y.Z/frp_X.Y.Z_linux_amd64.tar.gz tar zxvf frp_X.Y.Z_linux_amd64.tar.gz cd frp_X.Y.Z_linux_amd64 我的阿里云下不了 github.不知道啥情况。换个命令 wget https://sourceforge.net/projects/frp.mirror/files/v0.64.0/frp_0.64.0_linux_amd64.tar.gz/download -O frp_0.64.0_linux_amd64.tar.gz 下载后解压 配置 frps.toml 调整端口和 token 防火墙放开对应端口 服务器或者云服务安全组 配成系统服务(可选) 不做演示。 windows 安装 frpc 我去 拦在第一步。说release 的 exe 有问题。自己编译的比较靠谱是吧 安装 go 环境。自己编译出 frpc 客户端 启动后可以看到 配置改成下面的足够了 显示已折叠代码(19 行) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [common] server_addr = XXXX server_port = 7000 token = "XXX" # 比如映射一个本地 web 服务(假设端口 8080) [[proxies-lout]] name = "proxies-lout" type = tcp local_ip = "127.0.0.1" local_port = 8080 remote_port = 8080 [[proxies-ai]] name = "proxies-ai" type = tcp local_ip = "127.0.0.1" local_port = 8081 remote_port = 8081 写了个 start.bat ...

September 15, 2025 · 1 min · 172 words · Ray

vllm 推理 qwen3 没有 think 标签

问题 vllm 推理 qwen3-30b-a3b-2507 遇到没有第一个<think>标签 这个之前 DeepSeek-R1 出来后就遇到过几次,一般改一下chat_template 可以解决。这次记一下 在进行聊天补全请求时,模型的推理内容出现在 content 字段中,具有以下特征: 缺少开始的 <think> 标签 包含结束的 </think> 标签 所有推理内容与最终回复混合在 content 中 reasoning_content 字段为 null 由于最近升级了 vllm 以及推理的是 第三方 4bit 量化版,所以这些细节也记一下 版本 vLLM version: 0.10.1 Model: btbtyler09/Qwen3-30B-A3B-Thinking-2507-gptq-4bit Startup command: 1 2 3 4 5 6 7 8 9 10 11 12 13 python3 -m vllm.entrypoints.openai.api_server --model /model --host 0.0.0.0 --port 8000 --api-key token-ray123 --served-model-name mckj/Qwen3-30B-A3B-Thinking-2507 --tensor-parallel-size 1 --gpu-memory-utilization 0.96 --max-model-len 6144 --max-num-batched-tokens 8192 --max-num-seqs 64 --reasoning-parser qwen3 --enable-auto-tool-choice --tool-call-parser hermes 参考此 discussionQwen/Qwen3-30B-A3B-Thinking-2507 · Using vllm 0.10.0, `reasoning content` appears in content field instead of reasoning_content with Qwen3-30B-A3B-Thinking model ...

September 4, 2025 · 4 min · 848 words · Ray