コンテンツにスキップ

🗓️ 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 に git python3 がインストール済み

🚀 セットアップ手順

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 で設定済みのはず)。

# 確認方法
git remote get-url origin
git push --dry-run 2>&1  # 認証エラーが出なければOK

PAT が未設定の場合は git remote set-url で https 形式 + トークンを設定するか、 SSH キーを使用する。

Step 3: 動作テスト

# 手動実行でテスト
cd ~/MyLab
bash projects/daily_summary/push_to_docs.sh

エラーがなければ site-docs/ops/daily-log/YYYY-MM-DD.md が生成され、GitHub にプッシュされる。

Step 4: cron に登録

crontab -e

以下を追加(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: ログ確認

# 翌朝(JST 06:35 以降)にログを確認
cat ~/MyLab/logs/push_to_docs.log

🔧 スクリプトの動作

projects/daily_summary/push_to_docs.sh は以下を行う:

  1. git pull で最新を取得
  2. python3 projects/daily_summary/main.py を実行して出力を取得
  3. 出力が空の場合は projects/daily_summary/output/YYYY-MM-DD.md にフォールバック
  4. site-docs/ops/daily-log/YYYY-MM-DD.mdlatest.md に保存
  5. git commitgit 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 を追加