私は"Hello World"を/tmp/example.txt
。
スクリーンショットに示すように、私は次のことを試しました。
28 23 * * * echo "Hello World" >> /tmp/example.txt
28 23 * * * root /bin/bash echo "Hello World" >> /tmp/example.txt
また、スクリーンショットに示すように、日付。私も手に入れようとしました。正確な日付cron操作(28 23 29 11 4など)では、この方法も機能しません。
私も実際のファイルを使ってみました。
28 23 * * * ./pingstuff
これ平らなものファイルをGoogleにpingするだけです。このファイルを実行でき、正しく実行されます。しかし、crontab -eで使用しようとすると、スケジュールされた時間に何も起こりません。 (試行するたびに時間が変わります。)
私はスーパーユーザーとしてログインしました。これらすべてのファイルを読み取り、書き込み、実行する権限があります。何が間違っているのかわかりません。
ベストアンサー1
cronjobが実行されない理由は次のとおりです。
- cronデーモンが実行されていません
- crontabの構文エラー
- コマンドに構文エラーがあります。
- または権限の問題があります(例:実行ビットが設定されていません)
デーモンが実行されていることを確認するには、service cron status
またはsystemctl status cron
(サービス管理者はディストリビューションによって異なります)を試してください。デーモンの名前は、crond
またはのように若干異なる場合がありますcronie
。
実行していない場合は起動します(status
に置き換えますstart
)。
実行している場合は、関連するログファイルを確認して、ジョブが実際に実行されていることを確認してください。ディストリビューションによっては、このようなデーモン関連ファイルまたは/var/log/syslog
システムバイナリログファイル(ビュー用)に書き込むことができます。各ジョブ実行の行を表示する必要があります。/var/log/messages
/var/log/cron
journalctl -u cron
crontabをテストするときの実行時間を設定してください。もっと次の分で。一部の cron 実装では、実行するタスクを「事前計画」します。つまり、12:34:00 に実行するジョブを 12:33:00 に決定するので、12:33: 34 12 …
00 に cronjob を追加すると、次のことを見逃す可能性があります.チャンスの窓:30。
/bin/sh
ジョブが実行されても期待される結果が生成されない場合は、同じシェル(通常はミニマリスト)を使用して、同じユーザーとしてcrontabでコマンドを手動で実行してみてください。
一般的なトラップ(ここではそうではありませんが)はコマンドの文字にあります。文字はcronによって特別に処理され、実際のコマンド呼び出しで表示されるように%
エスケープ()する必要があります。ほとんどのcron実装では、各cronjob(存在する場合)の出力も電子メールで送信されます。インターネット経由のメール配信を設定していない場合は、これらのメッセージをローカルに保存してこのコマンドを使用して読み取る必要があります。\%
mail