cron-ops について
cron-ops は、OpenClaw の cron ジョブをライフサイクル全体にわたって管理するスキルです。本番環境の自動化を保守するチーム向けに、設定変更、トラブルシューティング、ペイロードのサニタイズを行います。
主な機能
- 01cron ジョブの作成と更新
- 02不要なジョブの削除
- 03ログ確認と障害調査
- 04誤検知の修正
- 05インジェクション対策のサニタイズ
活用シーン
- 01毎日のバックアップをスケジュール
- 02失敗した cron ジョブの調査
- 03API ポーリングタスクの保守
- 04ワークフロー内の古いジョブを整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill cron-opsインストール後、Claude Code で/cron-opsを入力して読み込まれたか確認します。
詳細
cron-ops
目的
このスキルは、OpenClaw の cron ジョブの作成、更新、削除、デバッグ、誤検知の修正、ペイロードのサニタイズなど、ライフサイクル全体を管理し、安全で信頼性の高い自動化を実現します。
使用する場面
本番環境でのバックアップ、データ同期、アラートなど、繰り返し実行するタスクをスケジュールする場合、cron の失敗をトラブルシューティングする場合、または自動化されたワークフローでジョブを適切に管理する場合に、このスキルを使用します。サーバーの保守や API のポーリングなど、システム自動化を伴う場面で適用してください。
主な機能
- カスタムスケジュールとコマンドを指定して cron ジョブを作成します。
- スケジュール、コマンド、パラメーターを変更するためにジョブを更新します。
- 使用していないスケジュールを整理するためにジョブを削除します。
- 出力をログに記録し、エラーを調査してジョブをデバッグします。
- 実行ログを分析してフィルターを調整し、誤検知を修正します。
- インジェクション攻撃を防ぐためにペイロードをサニタイズし、コマンドの安全性を確保します。
使用パターン
必ず $OPENCLAW_API_KEY 環境変数を使用して認証してください。CLI では、コマンドの先頭に openclaw cron を付けます。API では、https://api.openclaw.com/cron のような HTTPS エンドポイントを使用します。まずジョブを作成し、更新や削除には ID を使用します。コードでは OpenClaw SDK をインポートし、レスポンスを同期的に処理します。使用例:競合を避けるため、更新前にジョブのステータスを確認します。
一般的なコマンド/API
手早く操作するには OpenClaw CLI を、プログラムからアクセスするには REST API を使用します。認証には $OPENCLAW_API_KEY の設定が必要です。
-
ジョブを作成する(CLI):
openclaw cron create --schedule "0 0 * * *" --command "echo 'Hello'" --payload '{"key": "value"}'
毎日午前 0 時に実行するジョブをスケジュールします。 -
ジョブを更新する(API):
curl -X PUT https://api.openclaw.com/cron/jobs/{jobId} -H "Authorization: Bearer $OPENCLAW_API_KEY" -d '{"schedule": "0 30 * * *", "command": "backup.sh"}'
既存のジョブのスケジュールを更新し、毎時 30 分に実行するようにします。 -
ジョブを削除する(CLI):
openclaw cron delete --job-id 12345 --force
指定したジョブを削除します。--forceを指定すると確認を省略します。 -
ジョブをデバッグする(API):
curl -X GET https://api.openclaw.com/cron/jobs/{jobId}/logs -H "Authorization: Bearer $OPENCLAW_API_KEY"
デバッグ用のログを取得します。JSON 出力を解析してエラーの詳細を確認します。 -
誤検知を修正する(CLI):
openclaw cron fix --job-id 12345 --filter "error_type=timeout"
ジョブの設定でフィルターを更新し、よくある誤検知を無視するように修正します。 -
ペイロードをサニタイズする(コード例):
import openclaw client = openclaw.Client(api_key=os.environ['OPENCLAW_API_KEY']) sanitized_payload = client.sanitize({'command': 'echo "unsafe"; rm -rf /'}) print(sanitized_payload) # Outputs a safe versionジョブを作成する前に、ユーザー入力のペイロードを整理するために使用します。
ジョブの設定形式は JSON です。例:{"schedule": "cron_expression", "command": "shell_command", "payload": {"key": "value"}}。
統合に関する注意事項
ワークフロー内でジョブ ID を参照して、他の OpenClaw スキルと統合します。たとえば、監視を強化するには logging スキルにリンクします。CLI コマンドに --webhook-url フラグを追加して Webhook を使用します。例:openclaw cron create --webhook-url "https://your.service/webhook"。複数のサービスを使用する環境では、Docker または CI/CD パイプラインの環境変数を介して $OPENCLAW_API_KEY を渡します。最新の OpenClaw SDK バージョン(v2.5 以降)を使用して互換性を確保してください。外部システムとの連携では、cron スケジュールを Unix crontab などの標準形式に対応付けます。
エラー処理
よくあるエラーには、認証エラー(HTTP 401)、無効なスケジュール(HTTP 400)、ジョブの競合(HTTP 409)があります。レスポンスコードを確認して対処します。ステータスが 401 の場合は、$OPENCLAW_API_KEY を確認してください。無効なスケジュールについては、openclaw cron validate --schedule "invalid" で検証します。コードでは try-except ブロックを使用します。
try:
response = client.create_job(schedule="0 0 * * *")
except openclaw.AuthError as e:
print("Auth failed: Set $OPENCLAW_API_KEY")
except openclaw.ValidationError as e:
print(f"Invalid input: {e}")
一時的なエラーは、指数バックオフを使用して再試行します。追跡できるよう、すべてのエラーをジョブ ID とともにログに記録します。
具体的な使用例
-
毎日のバックアップジョブを作成する:
まず、$OPENCLAW_API_KEYを設定します。次に、以下を実行します:openclaw cron create --schedule "0 2 * * *" --command "rsync -a /data/ /backup/"。openclaw cron listで確認します。これにより毎日午前2時にバックアップが自動化され、失敗した場合はログを調べてデバッグできます。 -
失敗した cron ジョブをデバッグして修正する:
openclaw cron list --status failedでジョブを特定します。デバッグには、以下を実行します:curl -X GET https://api.openclaw.com/cron/jobs/12345/logs -H "Authorization: Bearer $OPENCLAW_API_KEY"。誤検知の場合は、openclaw cron fix --job-id 12345 --filter "status=timeout"で修正します。これにより、スケジュールされたタスクでのネットワークタイムアウトなどの問題を解決できます。
グラフの関係
- 依存先:core-openclaw(基本 API 用)
- 関連:scheduling(高度なタイマー用)、automation(ワークフロー統合用)
- 競合:なし
- 拡張先:jobs(一般的なタスク管理用)