cronの基本記録はどこにありますか?

cronの基本記録はどこにありますか?

Ubuntu 18.04では、次のようにman cron言います。

cronはsyslogツール「cron」に対応するアクションを記録し、標準のsyslogd(8)ツールを使用して履歴を制御できます。

また、cronのデフォルト設定は、cronデーモンを起動するinit.dスクリプトが読み取る/etc/default/cronによって制御されます。このファイルは、cronがシステムの環境変数を読み取るかどうかを決定し、実行前にcronプログラムに追加のオプションを追加してログを設定したり、/ etc / cronでファイルを処理する方法を定義したりできます。ディ。

タスクを追加しました。/etc/crontab

* * * * * t ( date && echo $PATH && date )

ジョブの出力を見つけようとしましたが、システムログに見つからないのはなぜですか?ありがとうございます。

$ less /var/log/syslog
...
Nov  3 12:21:01 ocean CRON[23992]: (t) CMD (( date && echo $PATH && date ) )
Nov  3 12:21:01 ocean CRON[23985]: (CRON) info (No MTA installed, discarding output)


$ cat  /etc/default/cron
# This file has been deprecated. Please add custom options for cron using
# $ systemctl edit cron.service
# or
# $ systemctl edit --full cron.service

ベストアンサー1

cronそれを記録する行動syslog詳細レベルは設定されたログレベルによって異なります。これには雇用による結果は含まれません。

後者については、マニュアルページに次のように記載されています。

コマンドが実行されると、すべての出力がcrontabの所有者(またはcrontabのMAILTO環境変数がある場合はそのユーザー)にメールで送信されます。

MTAを構成していないため、ログに示すように出力は削除されます。

MTAを設定するには、Debianおよびその派生パッケージのMTAパッケージにsudo apt install postfixプロンプ​​トをたどるだけで、簡単な設定を構成するための良いインストールスクリプトが提供されます。

または、次のコマンドを使用してcronジョブの出力をシステムログにリダイレクトできますlogger。ジョブ出力をlogger -p cron.info(通常出力の場合)およびlogger -p cron.err(エラーの場合)にパイプします.

cronが出力を電子メールで送信すると予想するのは、cronジョブ出力の粒度がシステムロガーの粒度と一致しないためです(ログはユーザーごとに保存されません)。システム内のすべてのユーザーはcronジョブを設定できますが、ユーザーが必ずしもシステムログにアクセスできるわけではなく、これらのログにアクセスできる他のすべてのユーザーが自分のジョブ出力を表示したくない場合があります。 cronが設計されたとき、電子メールはそれを管理するユーザーにcronジョブの結果を送信する合理的な方法でした。 Unixシステムは効率的な電子メール設定を持つことが期待されています。今日、これは電子メールの適合性が変更されたためではなく、ユーザビリティが変更されたため、あまり明確ではありません。仕事用電子メールがあるシステムでは、これをcron出力に使用することをお勧めします。あるいは、ジョブをユーザー固有のログファイルに出力することもできます(各ジョブには特定のリダイレクトがあります)。

systemd タイマーにはこの問題は発生しません。ユーザータイマーは個人ユーザー固有のログに記録されます。

おすすめ記事