Contents
まず結論
Mac miniで24時間動いているデータ収集の仕組みを、収集を1回も欠かさずに、正式なリポジトリ(Gitで管理する置き場)へ引っ越しました。手順は4つだけです。
コピー → 参照先の切替 → 動作確認 → 旧を削除
(削除は必ず最後。動いていることを確かめるまで、古い方を消さない)
そして引っ越しの本当の目的は、整理整頓ではありませんでした。「とりあえず置いたスクリプトが、いつの間にか本番になる」事故を止めることです。
問題:「とりあえず」が本番になっていく
心当たりのある人は多いはずです。実験のつもりで書いたスクリプトをホームディレクトリに置き、動いたのでそのまま常駐化。数日後には、そのファイルが誰にも管理されないまま、本番システムの心臓になっている——。
私のJR観測がまさにこの状態でした。収集スクリプトは元気に動いているのに、置き場所は「とりあえず」のまま。データは1日あたり数十MBずつ増え続ける。このまま放置すると、以前書いた「真実は1箇所に」の原則が崩れます。どれが本物のスクリプトか、未来の自分が分からなくなるからです。
だから、乱れの日が来て忙しくなる前に、住所を確定させることにしました。引っ越しは早いほど安い——荷物(ファイルと依存関係)が少ないうちにやるのが鉄則です。
難所:止めずに引っ越す
ただし、このシステムは止められません。収集が止まった時間は、そのまま「欠測」になるからです(このブログで何度も痛い目を見てきたやつです)。そして怖いのは、雑に引っ越すと黙って止まること。ファイルを動かした瞬間、常駐の仕組み(launchd)は古い住所を参照したままなので、エラー画面も出さずに空振りし続けます。以前書いた「サイレント故障」の、典型的な入口です。
そこで手順を、安全な順番に固定しました。
- コピー:新しいリポジトリへ、まず複製を置く(移動ではなくコピー。この時点で旧も生きている)
- 切替:常駐設定(launchdのplist)の参照先だけを、新しい住所に書き換えて読み込み直す
- 動作確認:収集の1サイクルぶん待って、出力ファイルに新しい行が実際に追記されることを目で確かめる
- 旧を削除:確認が取れて初めて、古い方を消す
ポイントは3の確認方法です。「エラーが出ていないこと」ではなく、「新しいデータが実際に書き込まれていること」を見る。沈黙は正常の証明になりません。動いている証拠(新しい行)だけが証明です。
plist(常駐設定)も、リポジトリに入れる
今回の引っ越しで、以前の反省をひとつ回収しました。launchdの設定ファイル(plist)を、リポジトリの中で管理するようにしたのです。
なぜか。スクリプト本体はGitにあるのに、それを動かす常駐設定だけがMacの奥(~/Library/LaunchAgents/)にポツンとある——この状態だと、将来マシンを替えたとき、「どうやって動かしていたか」だけが復元できない断絶点になります。サイレント故障をいくつも駆除した経験から言うと、システムの生死を握るファイルこそ、真っ先に管理下に置くべきでした。
運用は「原本はリポジトリ、実体は所定の場所に配置」の形です。これで設定の変更履歴もGitに残り、「なぜこの設定なのか」を未来の自分が辿れます。
入れるもの、入れないもの
リポジトリの引っ越しで、初学者が迷うのが「何をGitに入れて、何を入れないか」です。今回の線引きはこうしました。
- 入れる:スクリプト本体、常駐設定(plist)、日次サマリー(その日の要約テキスト)、「なぜそうしたか」のメモ
- 入れない(.gitignore):生データ本体——毎日数十MB増えるので、コミットするとリポジトリが数週間で巨大化し、複製(clone)が苦行になります
- 絶対に入れない:APIのトークンなどの秘密情報——.envファイルだけに置き、Gitには「.env.example」という空欄の見本だけを入れる。本物の鍵は決してコミットしない
「生データは外、要約は中」の線引きには理由があります。生データは巨大な一次資料、日次サマリーは小さなテキスト。そして要約こそが「平常の顔」の記録=将来の設計の一次資料になるからです。大きさではなく、将来の自分が何を参照するかで分けました。
おわりに ── 引っ越しは、未来の自分への投資
この作業、新しい機能は1つも増えていません。でも、終わってみると効果ははっきりしています。スクリプトも、設定も、記録も、全部が1つの住所に揃い、履歴つきで管理されている。次にマシンを替える日も、半年後に自分が構成を忘れた日も、このリポジトリを見れば全部再現できます。
環境構築というと「新しく作ること」を想像しがちですが、実際には「動いているものを、壊さずに正しい場所へ移すこと」のほうが、ずっと神経を使い、ずっと価値がある——今回それを実感しました。とりあえずで動き始めた何かを飼っている方は、荷物が軽いうちの引っ越し、おすすめです。
環境構築 / Git / launchd / Mac mini
このブログでは、ローカルLLM・Aider・個人開発の試行錯誤をそのまま記録しています。
