Cronジョブに出力がありません。

Cronジョブに出力がありません。

次のように最初のクローンジョブを予約してみました。

crontab -e

ファイルの上部と私が追加したコメントの後の最初の行にいくつかのコメントがあります。

* * * * * date

日時は1分ごとに出力されると予想されますが、端末では何も起こりません。出力は別の場所に送信されますか、またはcronジョブが実行されていませんか?これを行うために必要なヒントはありますか?

答え1

クローンのマニュアルページから:

コマンドが実行されると、すべての出力がcrontabの所有者(またはcrontabのMAILTO環境変数がある場合はそのユーザー)にメールで送信されます。 syslog および ps 出力に示すように、これらのプロセスを実行する cron サブコピーの名前は強制的に大文字で表示されます。

したがって、システムまたはシステムログ(例:/var/log/syslog)に設定した場合は、メールを確認します。

編集するサーバーエラーで(コマンドと一致するように編集)

次のコマンドは、すべてのCron出力を/ usr / bin / logger(2>&1を使用してstdoutに変換されたstderrを含む)に送信します。これは、date_loggingの「ラベル」とともにsyslogに送信されます。 Syslogはそこからそれを処理します。ほとんどのシステムには既にログ回転メカニズムが組み込まれているため、/var/log/mycustom.log などのログがディスクをいっぱいにするのを心配する必要はありません。

* * * * * root    /bin/date 2>&1 | /usr/bin/logger -t date_logging

答え2

OP、私のcrontabの上部、仕事の直前にcron形式を思い出させる次のコメントとMAILTO変数設定があります。ベストプラクティスとして、すべてのcron変数はcronジョブ定義の前に設定する必要があります。

# min  hrs  dayofmonth  month  dayofweek  command
# dow = 0-6 where 0 is Sunday, 6=Saturday
MAILTO=chuck

私の場合は、chuckcronを実行しているマシンのローカルユーザーです。フルメール転送エージェントが設定されている場合は、MAILTOをフルメールアドレスに設定できます。

[email protected]

すべてのcron出力はMAILTO変数を介してユーザーに送信されます。

cronから実際には空でない「空」のメールを受信しますのでご注意ください。キャリッジリターン出力をSTDOUTにキャプチャします! Ubuntuメールリーダー(アルパイン)に隠された文字を表示させる方法が見つからないため、追跡するPITAです。 (隠しCtrlを表示するメールリーダーをお勧めします。)

タスクバッチ/シェルファイルをテストする代わりに、at.Enterを使用しat TIMESPECて1行に1つのコマンドを使用してから、コマンドリストの末尾に^ Dを追加できます。ただし、cron変数が正しく設定されているかどうかはわかりませんが、ジョブがat完了すると(ジョブを実行している現在のローカルユーザーに)Eメールが届きます。at

at now + 1 minute<ENTER>
batchfilename1<ENTER>
batchfilename2<ENTER>
^D<ENTER>

関連情報