コンテンツにスキップ

Claude Code自動実行 - cron設定完全ガイド

この記事のポイント

  • 定期自動実行

    指定した時間にClaude Codeが自動で記事作成・更新を実行

  • ニュース記事自動化

    最新ニュースを検索して記事を作成・公開まで完全自動化

  • ログ監視

    実行状況・エラーの監視とログローテーション機能

  • Git連携

    記事作成後の自動コミット・プッシュでサイト更新まで完結

📖 Overview

Claude Codeの自動実行をcronで組むことで、定期的なニュース記事の作成・更新・公開を完全自動化できます。WSL環境でのcron設定から、エラーハンドリング、ログ管理まで包括的に対応しています。

自動化のメリット

  • 継続的コンテンツ生成: 手動操作なしで定期的な記事更新
  • 最新情報の自動キャッチアップ: 12時間以内の最新ニュースを自動検索
  • 完全なワークフロー: 記事作成からサイト公開まで一気通貫で自動化

🔧 セットアップ手順

1. スクリプトの配置確認

# 既に作成済みのスクリプトファイル確認
ls -la "$HOME"/note/scripts/

以下のファイルが配置されています:

scripts/
├── auto-claude-news.sh      # メイン実行スクリプト
├── log-monitor.sh           # ログ監視・管理スクリプト
└── crontab-sample.txt       # cron設定サンプル

2. cron設定の実装

WSLでのcron有効化

# cron serviceの開始(WSL環境)
sudo service cron start

# 自動起動設定
sudo systemctl enable cron

crontab設定手順

# 現在の設定をバックアップ
crontab -l > crontab_backup.txt

# crontab編集
crontab -e

推奨スケジュール設定

# 毎日朝6時と夕方18時に実行(1日2回)
# 実行例(ユーザのホームに合わせて調整)
0 6,18 * * * $HOME/note/scripts/auto-claude-news.sh

# その他のオプション例:

# 毎時実行(APIレート制限に注意)
# 0 * * * * $HOME/note/scripts/auto-claude-news.sh

# 平日のみ朝9時
# 0 9 * * 1-5 $HOME/note/scripts/auto-claude-news.sh

# 週1回土曜日の午前10時
# 0 10 * * 6 $HOME/note/scripts/auto-claude-news.sh

3. 環境変数の確認

# API keyの設定確認
echo $ANTHROPIC_API_KEY | head -c 20

# .bashrcに環境変数が設定されているか確認
grep ANTHROPIC ~/.bashrc

重要: API key設定

ANTHROPICAPIKEYが設定されていない場合、以下をbashrcに追加:

export ANTHROPIC_API_KEY="your-api-key-here"

📊 監視・運用

ログ監視コマンド

# 包括的なステータス確認
./scripts/log-monitor.sh all

# 最新ログのみ表示
./scripts/log-monitor.sh log

# エラーログのみ表示
./scripts/log-monitor.sh errors

# 実行中プロセス確認
./scripts/log-monitor.sh status

# ログローテーション実行
./scripts/log-monitor.sh rotate

ログファイルの場所

logs/
└── auto-claude-news.log    # メイン実行ログ

実行状況の確認

# cron実行状況確認
crontab -l

# 実行中のClaudeプロセス確認
ps aux | grep claude

# 最近の実行結果確認
tail -50 "$HOME"/note/logs/auto-claude-news.log

🛠️ トラブルシューティング

よくある問題と解決方法

1. 環境変数が読み込まれない

# bashrcの読み込み確認
source ~/.bashrc

# cronから環境変数が見えるか確認
* * * * * env > /tmp/cron-env.txt

2. nvmコマンドが見つからない

スクリプト内でnvmのパスを明示的に指定済み:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

3. Git認証エラー

# SSH keyの設定確認
ssh -T git@github.com

# HTTPS認証の場合、Personal Access Tokenの設定確認
git config --global credential.helper store

4. API制限エラー

# 実行頻度を調整
# 毎時 → 1日2回 → 週1回 の順で頻度を下げる

# 0 6,18 * * * # 1日2回(推奨)
# 0 10 * * 6   # 週1回

📋 メンテナンス作業

定期メンテナンス(月1回推奨)

# 1. ログファイルサイズ確認・ローテーション
./scripts/log-monitor.sh rotate

# 2. エラーログ確認
./scripts/log-monitor.sh errors

# 3. cronジョブ実行履歴確認
grep CRON /var/log/syslog | grep claude

# 4. ディスク使用量確認
du -sh "$HOME"/note/logs/

アップデート作業

# Claude Codeバージョン更新
npm update -g claude-code

# スクリプトの更新(必要に応じて)
git pull origin master

💡 高度な設定例

条件付き実行

特定の条件でのみ実行したい場合:

# スクリプト内に条件分岐を追加
if [ "$(date +%u)" -eq 6 ]; then  # 土曜日のみ
    claude --dangerously-skip-permissions "..."
fi

複数記事タイプの自動化

# 朝: Claude Codeニュース、夕方: 生成AIニュース
0 6 * * * $HOME/note/scripts/auto-claude-news.sh
0 18 * * * $HOME/note/scripts/auto-ai-news.sh

Slack通知連携

# 実行完了をSlackに通知
curl -X POST -H 'Content-type: application/json' \
  --data '{"text":"Claude Code auto-execution completed"}' \
  YOUR_SLACK_WEBHOOK_URL

🚀 実行例

手動テスト実行

# スクリプトの動作確認
./scripts/auto-claude-news.sh

# バックグラウンド実行
nohup ./scripts/auto-claude-news.sh &

# ログリアルタイム監視
tail -f "$HOME"/note/logs/auto-claude-news.log

設定完了確認

# cron設定確認
crontab -l

# 次回実行時刻確認
echo "次回実行予定:"
echo "朝6時: $(date -d 'tomorrow 06:00')"
echo "夕方18時: $(date -d 'today 18:00')"

自動化完了

この設定により、Claude Codeによる記事作成が完全自動化されます。 定期的なログ確認と必要に応じたスケジュール調整を行い、 継続的なコンテンツ更新システムを維持してください。