コンテンツにスキップ

Claude Code定期実行で開発効率10倍:cronジョブ+バッチ処理の実践パターン

この記事の対象者

  • Claude Codeで定期実行環境を構築したい中級者開発者・DevOpsエンジニア

この記事のポイント

  1. Claude Codeによる安全なcronジョブ設定の実装
  2. エラーハンドリング付きバッチスクリプトの作成
  3. ログ監視とアラート通知の自動化設定

なぜこの問題が今重要か

手動の定期作業(ログ解析、データ更新、レポート生成)が開発チームの30%の時間を圧迫している。Claude Codeの自動化機能を活用すれば、これらの作業を無人化し、開発者は創造的な作業に集中できる。

解決ステップ概要

ステップ内容到達指標
1Claude Code自動実行環境構築cronジョブが正常起動
2エラーハンドリング付きスクリプト作成障害時の自動復旧
3監視・アラート設定実行状況の可視化

ステップ1: Claude Code自動実行環境構築

最も重要なのは実行コンテキストの準備とcronジョブの安全な設定です。

# 1. 専用ディレクトリ作成と権限設定
mkdir -p ~/claude-automation/{scripts,logs,config}
chmod 755 ~/claude-automation/scripts

# 2. 環境変数ファイル作成
cat << 'EOF' > ~/claude-automation/config/env.sh
#!/bin/bash
export CLAUDE_API_KEY="your-api-key"
export LOG_LEVEL="INFO"
export WORKSPACE_PATH="/path/to/your/project"
export NOTIFICATION_EMAIL="your-email@domain.com"
EOF

chmod 600 ~/claude-automation/config/env.sh

ステップ2: エラーハンドリング付きバッチスクリプト作成

実運用で必須となる障害対応とロバストな処理を実装します。

#!/bin/bash
# ~/claude-automation/scripts/claude-batch-runner.sh

set -euo pipefail
source ~/claude-automation/config/env.sh

LOGFILE="~/claude-automation/logs/batch-$(date +%Y%m%d).log"
LOCKFILE="/tmp/claude-batch.lock"

# ロック機能(重複実行防止)
exec 200>"$LOCKFILE"
if ! flock -n 200; then
    echo "$(date): Already running" >> "$LOGFILE"
    exit 1
fi

function cleanup() {
    rm -f "$LOCKFILE"
}
trap cleanup EXIT

# メイン処理(例:データ分析とレポート生成)
function main() {
    echo "$(date): Starting Claude Code automation" >> "$LOGFILE"

    cd "$WORKSPACE_PATH" || exit 1

    # Claude Code実行(エラー時リトライ付き)
    for i in {1..3}; do
        if claude-code --batch analyze-logs --output-format json; then
            echo "$(date): Success on attempt $i" >> "$LOGFILE"
            break
        else
            echo "$(date): Failed attempt $i, retrying..." >> "$LOGFILE"
            sleep 30
        fi
    done
}

main "$@" 2>&1 | tee -a "$LOGFILE"

ステップ3: 監視・アラート設定

実行状況の可視化と障害時の即座な通知体制を構築します。

# crontab設定(毎日午前2時に実行)
0 2 * * * /home/user/claude-automation/scripts/claude-batch-runner.sh >/dev/null 2>&1

# 実行結果監視スクリプト
0 8 * * * /home/user/claude-automation/scripts/check-batch-status.sh

よくある落とし穴と対処

症状原因即時対処
cronが動かないPATH環境変数未設定スクリプト内でフルパス指定
重複実行エラーロック機能なしflockによる排他制御実装
ログが膨張ローテーション未設定logrotateで自動削除設定
詳細設定(高度最適化) **パフォーマンス最適化**: - バッチサイズ調整(大量データ処理時) - 並列実行数の制限設定 - メモリ使用量監視とスワップ回避 **セキュリティ強化**: - API キーのvault管理 - 実行ユーザー権限の最小化 - ログの機密情報マスキング **監視体制拡張**: - Prometheus + Grafanaでメトリクス可視化 - PagerDutyとの連携でオンコール体制 - 処理時間の異常値検出アラート

次に読む(関連記事)