工具 pg_xlogdump

# 单文件 pg_xlogdump 000000010000000000000001 # 多文件,指定lsn开始 pg_xlogdump -s 0/1000020 000000010000000000000001 # 多文件,整个目录 pg_xlogdump -p /opt/openGauss/data/pg_xlog SELECT pg_current_wal_lsn(); \! pg_xlogdump -p $GAUSSHOME/data/pg_xlog -s num=1640180680 printf "%X/%X\n" $((num >> 32)) $((num & 0xFFFFFFFF)) # 示例: 0/61c32bc8 pg_xlogdump -s 0/61c32bc8 -x 131128 printf "%x\n" 1640180680 # 示例: 61c32bc8 pg_xlogdump -s 000000010000000100000061 -x 131128

June 10, 2026 · 1 min · 50 words · Me

工具 硬件资源

1 磁盘 # 各文件夹大小 du -sh ./* | sort -hr

May 29, 2026 · 1 min · 10 words · Me

强制访问控制

1 背景 1.1 友商分析 oracle 范围:行级、列级 实现:动态谓词过滤 金仓 范围:列级 mysql 无 sql server 范围:行级 实现:谓词过滤 oracle 基于标签的访问控制OLS:绝密HS、机密S、秘密C、公开P https://docs.oracle.com/en/database/oracle/oracle-database/26/olsag/part1.html#GUID-C20C62AE-2A30-45F9-AEEA-52A0D3286FBA -- 1 定义策略 SA_SYSDBA.CREATE_POLICY(policy_name => 'HR_POLICY', column_name => 'HR_LABEL') -- 2 定义标签 SA_COMPONENTS.CREATE_LEVEL('HR_POLICY', 1000, 'PUBLIC', 'P'); -- 3 设置标签属性 SA_USER_ADMIN.SET_LEVELS('HR_POLICY', 'SCOTT', 'C', 'S'); SA_USER_ADMIN.SET_COMPARTMENTS('HR_POLICY', 'SCOTT', 'FIN'); -- 4 插入数据(主动定义标签) INSERT INTO employees (emp_id, emp_name, salary, HR_LABEL) VALUES (1001, 'John Doe', 50000, CHAR_TO_LABEL('HR_POLICY', 'C:FIN')); sql server:无 kngbase 行级 链接:https://help.kingbase.com.cn/v8/safety/safety-guide/label-and-mac.html#id5 范围:table, view, index, procedure, function, package, sequence, trigger, synonym ...

March 16, 2026 · 1 min · 201 words · Me

claude

安装 wget https://unofficial-builds.nodejs.org/download/release/v20.18.1/node-v20.18.1-linux-x64-glibc-217.tar.xz tar -Jxvf node-v20.18.1-linux-x64-glibc-217.tar.xz mv node-v20.18.1-linux-x64-glibc-217 node-20 touch envn echo ' export NODEHOME=`pwd`/node-20 export PATH=$NODEHOME/bin:$PATH export LD_LIBRARY_PATH=$NODEHOME/lib:$LD_LIBRARY_PATH ' > envn source envn mkdir npm-global npm config set prefix `pwd`/npm-global npm config set prefix $NODEHOME/npm-global echo 'export PATH=$NODEHOME/../npm-global/bin:$PATH' >> envn source envn npm pack @anthropic-ai/claude-code npm install -g ./anthropic-ai-claude-code-2.1.162.tgz claude --version https://www.tapd.cn/43100420/markdown_wikis/show/#1143100420001007544 export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKEN="sk-e435fe4629934fc892c226fc26d7ac92" export ANTHROPIC_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash export CLAUDE_CODE_EFFORT_LEVEL=max # 内网 export ANTHROPIC_BASE_URL=http://172.16.99.137:8081 export ANTHROPIC_AUTH_TOKEN=sk-q49Joop5Yz2BuS1ZPBPWJuCvwnS5elwKy9nP7PaLSi6fWrdy export ANTHROPIC_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash export CLAUDE_CODE_EFFORT_LEVEL=max # 内网 glm export ANTHROPIC_BASE_URL=http://172.16.99.137:8081 export ANTHROPIC_AUTH_TOKEN=sk-q49Joop5Yz2BuS1ZPBPWJuCvwnS5elwKy9nP7PaLSi6fWrdy export ANTHROPIC_MODEL=glm-5.2 export ANTHROPIC_DEFAULT_OPUS_MODEL=glm-5.2 export ANTHROPIC_DEFAULT_SONNET_MODEL=glm-5.2 export ANTHROPIC_DEFAULT_HAIKU_MODEL=glm-5 export CLAUDE_CODE_SUBAGENT_MODEL=glm-5 export CLAUDE_CODE_EFFORT_LEVEL=max # 外网: http://172.16.105.104:3000 $env:ANTHROPIC_BASE_URL = "https://api.deepseek.com/anthropic" $env:ANTHROPIC_AUTH_TOKEN = "sk-e435fe4629934fc892c226fc26d7ac92" $env:ANTHROPIC_MODEL = "deepseek-v4-flash" $env:ANTHROPIC_DEFAULT_OPUS_MODEL = "deepseek-v4-flash" $env:ANTHROPIC_DEFAULT_SONNET_MODEL = "deepseek-v4-flash" $env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "deepseek-v4-flash" $env:CLAUDE_CODE_SUBAGENT_MODEL = "deepseek-v4-flash" $env:CLAUDE_CODE_EFFORT_LEVEL = "max" # 外网 海量 $env:ANTHROPIC_BASE_URL = "http://172.16.105.104:3000" $env:ANTHROPIC_AUTH_TOKEN = "sk-q49Joop5Yz2BuS1ZPBPWJuCvwnS5elwKy9nP7PaLSi6fWrdy" $env:ANTHROPIC_MODEL = "glm-5.2" $env:ANTHROPIC_DEFAULT_OPUS_MODEL = "glm-5.2" $env:ANTHROPIC_DEFAULT_SONNET_MODEL = "glm-5.2" $env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "glm-5" $env:CLAUDE_CODE_SUBAGENT_MODEL = "glm-5" $env:CLAUDE_CODE_EFFORT_LEVEL = "max" export ANTHROPIC_BASE_URL=http://172.16.105.104:3000 export ANTHROPIC_AUTH_TOKEN=sk-q49Joop5Yz2BuS1ZPBPWJuCvwnS5elwKy9nP7PaLSi6fWrdy export ANTHROPIC_MODEL=glm-5.2 export ANTHROPIC_DEFAULT_OPUS_MODEL=glm-5.2 export ANTHROPIC_DEFAULT_SONNET_MODEL=glm-5.2 export ANTHROPIC_DEFAULT_HAIKU_MODEL=glm-5 export CLAUDE_CODE_SUBAGENT_MODEL=glm-5 export CLAUDE_CODE_EFFORT_LEVEL=max # 外网 海量 $env:ANTHROPIC_BASE_URL = "http://172.16.105.104:3000" $env:ANTHROPIC_AUTH_TOKEN = "sk-q49Joop5Yz2BuS1ZPBPWJuCvwnS5elwKy9nP7PaLSi6fWrdy" $env:ANTHROPIC_MODEL = "deepseek-v4-flash" $env:ANTHROPIC_DEFAULT_OPUS_MODEL = "deepseek-v4-flash" $env:ANTHROPIC_DEFAULT_SONNET_MODEL = "deepseek-v4-flash" $env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "deepseek-v4-flash" $env:CLAUDE_CODE_SUBAGENT_MODEL = "deepseek-v4-flash" $env:CLAUDE_CODE_EFFORT_LEVEL = "max" export ANTHROPIC_BASE_URL=http://172.16.105.104:3000 export ANTHROPIC_AUTH_TOKEN=sk-q49Joop5Yz2BuS1ZPBPWJuCvwnS5elwKy9nP7PaLSi6fWrdy export ANTHROPIC_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash export CLAUDE_CODE_EFFORT_LEVEL=max [System.Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://api.deepseek.com/anthropic", "User") [System.Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "sk-e435fe4629934fc892c226fc26d7ac92", "User") [System.Environment]::SetEnvironmentVariable("ANTHROPIC_MODEL", "deepseek-v4-pro[1m]", "User") [System.Environment]::SetEnvironmentVariable("ANTHROPIC_DEFAULT_OPUS_MODEL", "deepseek-v4-pro[1m]", "User") [System.Environment]::SetEnvironmentVariable("ANTHROPIC_DEFAULT_SONNET_MODEL", "deepseek-v4-pro[1m]", "User") [System.Environment]::SetEnvironmentVariable("ANTHROPIC_DEFAULT_HAIKU_MODEL", "deepseek-v4-flash", "User") [System.Environment]::SetEnvironmentVariable("CLAUDE_CODE_SUBAGENT_MODEL", "deepseek-v4-flash", "User") [System.Environment]::SetEnvironmentVariable("CLAUDE_CODE_EFFORT_LEVEL", "max", "User") # 安装nodejs yum install -y nodejs mkdir ~/.npm-global npm config set prefix '~/.npm-global' echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc source ~/.bashrc # 安装claude npm install -g @anthropic-ai/claude-code # 验证 claude --version cd /data/postgresql17 # 5. 启动 Claude Code 并进行首次认证 # 运行后,终端会提供一个链接,在浏览器中完成账号授权即可 claude # 6. (可选但推荐) 生成项目记忆文件 # 在 Claude 交互界面中,输入以下命令,它会分析项目并生成 CLAUDE.md 文件 /init # linux 使用代理 curl -L https://github.com/MetaCubeX/mihomo/releases/latest/download/mihomo-linux-amd64-compatible.gz | gunzip > /usr/local/bin/mihomo chmod +x /usr/local/bin/mihomo mkdir -p /etc/clash curl -o /etc/clash/config.yaml http://43.135.139.219:9999/clash.yaml # 3. 启动 Clash nohup mihomo -f /etc/clash/config.yaml > /var/log/clash.log 2>&1 & # 4. 设置代理环境变量(Clash 默认 mixed-port 7890) export http_proxy=http://127.0.0.1:7890 export https_proxy=http://127.0.0.1:7890 # 5. 测试 curl -I https://www.google.com git config --global user.name "shenkun" git config --global user.email "shenkun@bupt.cn" ssh-keygen -t rsa -C "shenkun@bupt.cn" cat ~/.ssh/id_rsa yum install proxychains-ng -y echo "socks5 10.255.255.254 1080" >> /etc/proxychains.conf # windows11 安装clash https://github.com/clash-verge-rev/clash-verge-rev/releases yum install -y shadowsocks-libev cat > /etc/shadowsocks-libev/client.json << 'EOF' { "server": "43.135.139.219", "server_port": 443, "local_address": "127.0.0.1", "local_port": 1080, "password": "gauss@123", "method": "aes-256-gcm" } EOF ss-local -c /etc/shadowsocks-libev/client.json -f /var/run/ss-local.pid export https_proxy=socks5://127.0.0.1:1080 # githup 使用 # 启动 claude claude --resume # 恢复最近一次对话 claude --continue # 继续上一次对话 claude --model <name> # 指定模型 claude --dangerously-skip-permissions # 跳过所有权限确认 claude update # 命令 /clear # 清楚所有对话 /compact # 压缩上下文,保留摘要 /rewind # 回滚上一次对话 /memory # 编辑记忆文件,记住偏好 /resume # 恢复历史会话 /context # 显示上下文窗口使用量 # 项目 /init 初始化项目,生成CLAUDE.md /review # 代码审查 /commit # 提交 # 环境 /config # 调整主题、模型等 /model [name] # 切换模型 /permissions # 工具权限白名单 /doctor # 检查环境 /mcp /cost # token用量和费用 /usage # 扩展 /skill /自定义skill # 快捷键 | 快捷键 | 功能 | | :--- | :--- | | `Shift + Tab` | 循环切换三种模式:计划模式 → 默认模式 → 自动编辑模式 | | `!command` | 直接在终端执行 bash 命令(不发给 AI) | | `Ctrl + B` | 将阻塞的进程放到后台,继续对话 | | `Esc Esc` | 双击 Esc 等同于 `/rewind` 回滚 | | `Ctrl + V` | 粘贴图片到对话框 | | `Option/Ctrl + Enter` | 输入框换行(Enter 是直接发送) | 模型名称 厂商 发布时间 核心亮点(精简) 定位/优势场景 GPT-5.6 (Sol/Terra/Luna) OpenAI 2026.07.09 7月9日刚全球开放;三档分层+速度拨盘;Codex与ChatGPT合一 全能旗舰、超级智能体 GPT-5.5 OpenAI 2026.04.24 首个从零重训基础模型;100万tokens;MoE+Verifier架构 真实工作流、编程调试 DeepSeek-V4 (Pro/Flash) 深度求索 2026.04.24 万亿参数MoE开源;百万token原生上下文;成本仅OpenAI 1/100 开源性价比之王、Agent Qwen3.7-Max 阿里巴巴 2026.05.20 国产Arena盲测第一;全域思考模式;Agentic Coding全球前三 国产旗舰、智能体编程 Claude Opus 4.7/4.8 Anthropic 2026 Q2 代码质量最优;长文本推理首选;WebDev Arena排名第一 编程审校、深度推理 Gemini 3.5 Pro Google 2026.06 Artificial Analysis智能指数登顶;集成计算机使用(CU)能力 复杂推理、多模态科研 Grok 4 / 4.5 xAI 2026.05-07 实时接入X平台;编码与Agent能力持续强化;百亿~千亿参数 实时信息、社交分析 Kimi-K2.6 月之暗面 2026 H1 长文本办公统治级;JSON输出稳定;指令遵循能力强 办公自动化、Agent GLM-5.1 智谱AI 2026 Q2 国产第一梯队;编程能力进入Top7;综合能力稳居前列 通用对话、编程辅助 豆包 2.1 Pro 字节跳动 2026.06 中文口语最自然;移动端交互最佳;多模态细节强 C端用户、内容创作 Meta Muse Spark 1.1 Meta 2026.07 首次开放Model API;正面争夺企业开发者市场 企业开发、开源生态 Llama 4 Meta 2026(预计) 开源生态标杆;多模态原生;社区微调最丰富 开源基座、定制微调

March 6, 2026 · 3 min · 635 words · Me

高质量专项 全密态机密计算

目录 目录 1 架构 1.1 整体架构 2 流程 2.1 整体流程 3 设计 3.1 驱动加密 3.2 机密计算 一、技术调研 二、方案对比 4 接口 5 实现 1 架构 1.1 整体架构 全密态数据库是一种由数据库提供的安全特性,指数据库在处理数据的过程中,确保数据在传输、计算、存储等全生命周期阶段,于任何不可信的介质或环境中,始终处于加密状态。不可信环境包括:网络、内存、磁盘等。以常见的拓扑模型为例,在使用数据库的过程中,威胁面较广: 全密态数据库中,对于传输、存储安全,采用驱动加密方案。应用向数据库发送数据时,先在驱动中加密数据,再发送数据密文。应用从数据库接收数据时,先接收数据密文,再在驱动中解密数据。数据在网络、磁盘、服务端内存中,均处于加密状态。基本架构如下图所示: 全密态数据库中,对于计算安全,采用机密计算方案。驱动加密方案,解决传输、存储安全,但是,数据库端无法在密文上计算。为解决计算问题,业界有两种方案: 基于密码学算法的密文计算方案:通过密码学算法,让数据库在直接在密文上进行计算,例如保序加密、可搜索加密、同态加密等 基于硬件隔离的机密计算方案:在CPU、内存中,划分逻辑独立的可信执行环境,让数据库在可信执行环境中解密数据密文,进行计算。 在充分对比安全性、功能完备性、性能、实现难度等特点,选择机密计算方案。结合驱动加密方案、机密计算方案,全密态数据库整体架构如下图所示: 全密态数据库中,对于加密模型,采用多级密钥方案。数据由数据密钥加密,密钥由主密钥加密,主密钥由根密钥加密。在驱动加密模块中,只能获取数据密钥,无法获取主密钥。在更安全的加密方案中,驱动加密模块无法获取数据密钥,由硬件加密机加密。在数据库端,仅存储密钥信息,无法获取密钥。全密态数据库加密模型如下图所示: 2 流程 2.1 整体流程 使用全密态数据库时,用户需定义主密钥、数据密钥、加密表,在执行存储、查询数据时,全密态数据库自动完成加密、解密、计算等操作。完整的使用流程如图所示: 3 设计 3.1 驱动加密 3.2 机密计算 一、技术调研 纯软路线 同态加密 软硬路线 x86 cpu sgx:硬件 tdx:硬件 固件 me:出厂自带 软件 sgx driver amd cpu sev:Secure Encrypted Virtualization,CPU扩展电路,为每台虚拟机分配内存密钥,运行时加密整段内存。需BIOS开启。 sev-snp/sev-es 固件 psp 软件 kvm sev arm cpu trust-zone:每个核新增总线, 固件 arm trusted fimware 软件 op-tee tee: https://github.com/OP-TEE/build ...

January 19, 2026 · 1 min · 84 words · Me

工具 python

查看python安装路径 python -c "import sys, os; print(os.path.dirname(sys.executable))" python下载pgk python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

December 29, 2025 · 1 min · 15 words · Me

操作系统 3 多进程与多线程

1 数据传输 1.1 传输场景 父子进程 陌生进程 1.2 传输接口 1.3 传输示例 2 并发控制 2.1 并发场景 整型 多写 一写多读 多写一读 多写多读 数据 多写 多读 一写多读 多写一读 多写多读 2.2 并发接口 (glibc) 一、自选锁 #include <pthread.h> pthread_spinlock_t spin; pthread_spin_init(&spin, PTHREAD_PROCESS_PRIVATE); pthread_spin_lock(&spin); pthread_spin_unlock(&spin); 二、互斥锁 #include <pthread.h> pthread_mutex_t lock; pthread_mutexattr_t attr; thread_mutexattr_init(&attr); pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL); pthread_mutex_init(&lock, &attr); pthread_mutex_lock(&lock); pthread_mutex_unlock(&lock); 三、读写锁 #include <pthread.h> pthread_mutex_t rdlock; pthread_mutexattr_t attr; pthread_rwlockattr_init(&attr); pthread_rwlockattr_setpshared(&attr, PTHREAD_PROCESS_SHARED); pthread_rwlock_init(&rdlock, &attr); pthread_rwlock_rdlock(&rdlock); pthread_rwlock_wrlock(&rdlock); pthread_rwlock_unlock(&rdlock); 四、信号量 #include <semaphore.h> sem_t sem; sem_init(&sem, 0, 8); sem_wait(&sem); sem_post(&sem); 五、原子写 #include <pthread.h>/* C 11 */ volatile unsigned num = 0; __atomic_store_n(&num, 8, __ATOMIC_SEQ_CST); unsigned cur = __atomic_load_n(&num, __ATOMIC_SEQ_CST); 2.3 并发代码 整型数据 ...

December 17, 2025 · 2 min · 224 words · Me

工具 gdb

查看某个进程占用的内存 ps -p 17286 --no-headers -o pid,comm,rss,%mem | awk '{printf "%-8s %-20s %8.2f MB %5s%%\n", $1, $2, $3/1024, $4}' gdb调试进程或coredump文件时,变量取值出现’optimized out’时,关闭编译优化 # 以编译PG为例: configure --enable-debug --disable-optimizations CFLAGS="-g -O0 -fno-inline -fno-omit-frame-pointer" gdb启动调试阶段,自动执行命令 touch ~/.gdbinit echo "handle SIGUSR2 nostop noprint" >> ~/.gdbinit 判断编译选项 readelf --debug-dump=info `which bin_name` | grep -E 'DW_AT_producer.*O[0-9]'

October 15, 2025 · 1 min · 49 words · Me

工具 git

git log --author=shenkun --oneline x86 git status -uno | awk '{if (NR>1) print $3}' | grep src | xargs -I {} git add {} arm git status -uno | grep modified | awk '{if (NR>1) print $2}' | xargs -I {} git add {} git tag -l git ls-remote --tags origin git fetch --tags

September 24, 2025 · 1 min · 54 words · Me

工具 tcpdump

tcpdump -i any -w ./vsql.pcap 'tcp port 5432'

September 4, 2025 · 1 min · 8 words · Me
心情不好的时候可以点一下 🐱
×
🤖 Doubao AI ×
Hi! 我是你的技术助手。关于代码、架构或 Bug,随时问我!🚀