無料ツール

crontab → Dagu 変換ツール

crontab を貼り付けると、各エントリーがリトライ、ログ、Web UI を付けられる Dagu のワークフロー YAML になります。

3 件のエントリーを変換、警告 1 件

警告

  • 9 行目: @reboot はスケジュールではないため、対応する Dagu の設定はありません。systemd unit などの起動時実行を検討してください。@reboot /usr/local/bin/start-agent

このツールはすべてブラウザ内で動作します。貼り付けた内容が送信されることはありません。

backup.yaml
# Generated from crontab: 30 2 * * * /usr/local/bin/backup.sh --full
schedule: "30 2 * * *"

shell: /bin/bash

env:
  - PATH=/usr/local/bin:/usr/bin:/bin

steps:
  - id: backup
    run: /usr/local/bin/backup.sh --full

# crontab had MAILTO=ops@example.com. Configure SMTP in Dagu,
# then enable failure mail:
# mail_on:
#   failure: true
health-check.yaml
# Generated from crontab: */15 * * * * /usr/local/bin/health-check.sh
schedule: "*/15 * * * *"

shell: /bin/bash

env:
  - PATH=/usr/local/bin:/usr/bin:/bin

steps:
  - id: health-check
    run: /usr/local/bin/health-check.sh

# crontab had MAILTO=ops@example.com. Configure SMTP in Dagu,
# then enable failure mail:
# mail_on:
#   failure: true
rotate-logs.yaml
# Generated from crontab: @daily /usr/local/bin/rotate-logs
schedule: "0 0 * * *"

shell: /bin/bash

env:
  - PATH=/usr/local/bin:/usr/bin:/bin

steps:
  - id: rotate-logs
    run: /usr/local/bin/rotate-logs

# crontab had MAILTO=ops@example.com. Configure SMTP in Dagu,
# then enable failure mail:
# mail_on:
#   failure: true

FAQ

何を変換できますか?

5 フィールドの cron エントリー、@daily などのエイリアス、環境変数の代入行に対応します。SHELL は shell 設定に、環境変数は env セクションに、MAILTO は失敗時メールを有効化するためのコメント付きヒントになります。環境変数は crontab と同じく、宣言より下のエントリーにだけ適用されます。

変換できないものはありますか?

@reboot はスケジュールではなく起動時実行なので、対応する Dagu の設定はなく、警告として表示されます。また crontab の % はコマンドの区切りと標準入力という特殊な意味を持つため、含まれる行には確認を促す警告が付きます。

crontab の内容はアップロードされますか?

いいえ。解析と変換はすべてブラウザ内の JavaScript で行われ、貼り付けた内容がページの外へ出ることはありません。

変換した YAML を動かす

Dagu は単一バイナリで、データベースなしで動きます。ファイルを DAG ディレクトリに置けば、スケジュール実行、リトライ、ログ、実行履歴が付きます。