🗓️ VPS daily-log → mylab-docs 自動同期 セットアップガイド¶
📁 docs/dev-environment/artifact/artifact/daily-log-sync-setup.md
[!NOTE] issue #6872 の実装。VPS cron で生成された
daily_summaryの出力を mylab-docs のops/daily-log/に自動コミットする仕組みのセットアップ手順。
📋 前提条件¶
- VPS (
[email protected]) に SSH ログイン済み ~/MyLabが git clone 済み(master ブランチ)~/MyLab/projects/daily_summary/main.pyが存在し、cron 06:30 で実行済み- VPS に
gitpython3がインストール済み
🚀 セットアップ手順¶
Step 1: スクリプトに実行権限を付与¶
ssh [email protected]
cd ~/MyLab
git pull
chmod +x projects/daily_summary/push_to_docs.sh
Step 2: GH_PAT の設定確認¶
VPS に GitHub PAT が設定済みであることを確認する(issue #5279 で設定済みのはず)。
PAT が未設定の場合は git remote set-url で https 形式 + トークンを設定するか、 SSH キーを使用する。
Step 3: 動作テスト¶
エラーがなければ site-docs/ops/daily-log/YYYY-MM-DD.md が生成され、GitHub にプッシュされる。
Step 4: cron に登録¶
以下を追加(daily_summary の実行 06:30 の 5 分後に実行):
# daily_summary 実行(既存)
30 21 * * * cd ~/MyLab && python3 projects/daily_summary/main.py >> ~/MyLab/logs/daily_summary.log 2>&1
# daily-log → mylab-docs 同期(新規追加)
35 21 * * * /home/ubuntu/MyLab/projects/daily_summary/push_to_docs.sh >> /home/ubuntu/MyLab/logs/push_to_docs.log 2>&1
[!NOTE] VPS の cron はデフォルト UTC なので、JST 06:30 = UTC 21:30。
35 21 * * *= JST 06:35 (UTC 21:35) に同期スクリプトを実行。
Step 5: ログ確認¶
🔧 スクリプトの動作¶
projects/daily_summary/push_to_docs.sh は以下を行う:
git pullで最新を取得python3 projects/daily_summary/main.pyを実行して出力を取得- 出力が空の場合は
projects/daily_summary/output/YYYY-MM-DD.mdにフォールバック site-docs/ops/daily-log/YYYY-MM-DD.mdとlatest.mdに保存git commit→git push origin master
📁 関連ファイル¶
| ファイル | 説明 |
|---|---|
projects/daily_summary/push_to_docs.sh | 同期スクリプト本体 |
site-docs/ops/daily-log/YYYY-MM-DD.md | 日付別ログファイル |
site-docs/ops/daily-log/latest.md | 最新ログ(最終更新日のコピー) |
site-docs/ops/daily-log/index.md | ページ一覧・インデックス |
🐛 トラブルシューティング¶
| 症状 | 原因 | 対処 |
|---|---|---|
daily_summary の出力が空 | main.py の stdout が空 | python3 projects/daily_summary/main.py を手動実行して確認 |
git push 失敗 | PAT の期限切れ or 権限不足 | gh auth login でトークン再設定 |
スクリプトが実行されない | cron のパス設定不足 | cron に PATH=/usr/local/bin:/usr/bin:/bin を追加 |