「at」ジョブと「cron」ジョブの出力はどこに行きますか?


9

表示する画面がない場合、標準出力atcronタスクはどこに行きますか?

ジョブが開始されたディレクトリにも、ホームディレクトリにも表示されません。

バックグラウンドジョブをデバッグまたはトレースする方法がわからない場合、実際にこれを理解するにはどうすればよいですか?


出力は通常、電子メールで送信されます。
donothings

出力を読むために、「小さいが非常に強力なテキストベースのメールクライアント」であるmuttを使用することをお勧めします。これは、私が使用したすべてのディストリビューションのリポジトリにあります。
kwarrick

回答:


10

cronのmanページから:

コマンドを実行すると、すべての出力がcrontabの所有者(または、存在する場合は、crontabのMAILTO環境変数で指定されたユーザー)にメールで送信されます。これらのプロセスを実行しているcronの子のコピーは、syslogおよびpsの出力で確認できるように、名前が大文字に強制変換されます。

したがって、/ rootのメールまたはsyslog(たとえば、/ var / log / syslog)を確認する必要があります。


私のMacでは、「cron」を呼び出すだけで、「メール」へのパスが表示されました。私の場合、それは/ var / mail / <username>でした。
セドリックギエメット

4

実行時間の長いプロセスの場合、メールを受け取る前に出力を確認しておくと便利なことがあります。代わりにこれを使用します。

  1. ps実行中のプログラムのプロセスIDを見つけるために使用します(PID 以下)。
  2. lsof出力が書き込まれるファイルを見つけるために使用します。

    lsof -p PID
    

出力で、列ヘッダーの下の1uおよび2u行を探しますFD

これらの行は、メールで送信される前にプロセス出力が入る一時ファイルを示します。通常、のat場合、ファイルはの下にあり/var/spool/cron/atjobs/ます。最後に、そのファイルを表示すると、プロセスの(現在の)出力が表示されます。


下のファイル1uとは2uタイプのものですUNIX。これらはUNIXソケットだと思います。今、どのようにファイルを調べるのですか?
kapad
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.