私のcrontabログファイルはどこにありますか?

私のcrontabログファイルはどこにありますか?

いいえ/var/log/cron/var/log/cron.log私のDebian 7にはありません。私のcrontabログファイルはどこにありますか?

ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory

答え1

debian cronログに書いていると思います/var/log/syslog
システムがそれに依存するrsyslogか、in行またはfor行syslogdを確認してコメントアウトを削除できる場合:/etc/rsyslog.conf/etc/syslog.conf

# cron.* /var/log/cron.log

その後、サービスを再起動します。

systemdたとえば、システムがそれに依存している場合は、次のコマンドを使用して確認できます。

journalctl _COMM=cron

または

journalctl _COMM=cron --since="date" --until="date"

日付形式を確認するにはjournalctl

答え2

Debianにタグが付けられておらず、Fedora検索にも表示されないため、最新(システムベース)のFedoraを確認する方法は次のとおりです。

sudo systemctl status crond

一般的な出力

● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-09-29 16:09:21 CEST; 47min ago
 Main PID: 1167 (crond)
    Tasks: 1
   Memory: 2.8M
      CPU: 948ms
   CGroup: /system.slice/crond.service
           └─1167 /usr/sbin/crond -n

Sep 29 16:09:21 ncelrnd0216 systemd[1]: Started Command Scheduler.
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) STARTUP (1.5.4)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (Syslog will be used instead of sendmail.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 31% if used.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (running with inotify support)

そしてallログ

journalctl --unit crond -n all

答え3

デフォルトでは、ジョブ出力はcrontab所有ユーザーのローカル電子メールアドレスに送信されます。例:crontabホストの出力が送信されます。システムはタスクを完了するためにデフォルトのメーラーを使用します。aUserwww.aDomain.com[email protected]

MAILTOcrontabファイルにステートメントを追加して、この出力を代替Eメールアドレスに切り替えることができます。たとえば、

# Mail any output to [email protected], no matter whose crontab this is
[email protected]
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh 

crontabログを受信するために外部の電子メールアドレスを使用するときは注意してください。頻繁に送信されるメッセージはスパムフィルタにフィルタリングされる可能性があります。その後、メッセージを次のように表示する必要があります。スパムではないYahoo、HotMail、Gmailなどのサービスで動作します。

別の解決策は、crontabコマンドの出力を選択したファイルにリダイレクトすることです。次の例では、stdoutおよびstderr出力がに送信されます/tmp/aJob.log。この方法を使用すると、電子メールを送信する可能性がなくなります。

# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log 2>&1

別のオプションは、stderrログを電子メールで送信し、stdoutログをファイルに送信することです。この場合、コマンドによって予期しないエラーメッセージが生成されるcrontabと、電子メール通知が届きます。前の例との違いは、2>&1この例が削除され、stderr出力をコンソールと電子メールで送信できることです。

# Mail any output to [email protected], no matter whose crontab this is
[email protected]    
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log

もっと読むスケジュールされたタスクのリストそしてスケジュールされた作業コマンド

答え4

2020年:Googleは同様のことに私を招待しました。

/var/log/messagessystemdを使用するディストリビューションの場合、orはありません/var/log/cron

ジャーナルデーモンはsystemdを使用してロギングを処理します。

cronがスクリプトを実行していることを確認してログを追跡するには、次のようにします。

journalctl -u cron.service -f

関連情報