
私は10分ごとに実行されるいくつかのmtr
()出力と一緒に1時間毎に実行されるcrontabタスクを持っていますtraceroute
(これは電子メールで再送信される前に1時間以上続きます)、これまでのところ現在の進捗状況を見たいと思います。
Linuxでは、次のことができます。fdを開き、スクリプトの結果を含む一時ファイルにアクセスします。。
OpenBSDでこれを行うにはどうすればよいですか?
これを試しましたが、一時fstat | fgrep -e USER -e cron -e mtr
ファイルがまったく見つかりませんでした。
答え1
cronがジョブ出力メーリングを処理する方法のソースを調べました。
cron(8)
mail(1)
一時ファイルを残さずにstdoutとstderrを実行中のジョブに直接設定してパイプします。 411行目を見てくださいdo_command.c
(1)。mail(1)
標準入力はヘッダーが必要なので完全に準備する必要があります。一時ファイル(通常)を開いてから/tmp/mail-R…
跡を残さないようにすぐに削除します。 83行目を見てくださいcollect.c
(2)。
どんなに見ても意図的な努力だと思います。いいえ傍受できる一時ファイルを残します。長期実行cronjobで何が起こるのかを傍受する必要がある場合は、一時ファイルを直接設定する必要があります。
この時点で私が提案するのは、tee $HOME/cronjob.out
安全な場所に作業出力のコピーをキャプチャするcronjobを追加することです。
答え2
出力を傍受する必要があります(または一時ファイルがどこにあるかを調べる必要があります)。申し訳ありません。 * BSDでこれを行う方法がわかりません。ただし、ファイルがバッファリングされていない限り、バッファがいっぱいになるたびに(約4KiB程度)出力しか表示されないため、かなり長い時間がかかることがあります。現在の状態を確認したい場合は、手動でコマンドを実行するだけで高すぎますか?