cronジョブが出力を生成する場合、それはユーザーのアカウントに電子メールで送信されます。
このメールを別のメールアカウントにリダイレクトしたいと思います。できればユーザーごとに。
他の投稿でよく言及されるいくつかのオプションを調べました。
Cron MAILTO
変数を使用します。動作しません。これはSolarisではサポートされていません。これはLinuxのものであり、場合によってはBSDのものでもありますが、Solarisには確かに存在しません。
~/.forward
ファイルを使用します。それを機能させることはできません。これは、このファイルが実際にsendmail
ユニバースに関連しており、Solariscronが実際にsendmail
を使用して電子メールを送信しているかどうかがわからないためだと思います。
これを理解するには、Solariscronがどのメカニズムで電子メールを送信するかを正確に理解する必要があると思います。
誰でも ?
Cronからのメールだけでなく、ユーザーのすべてのメールを転送する場合、Solarisは ~/.forward
をサポートします。 Solarisは、/etc/mail/aliases
のグローバルエイリアスもサポートしています。このファイルを変更する場合は、 newaliases
を実行する必要があります。
Cronからのメールのみを転送する場合は、~/.forward
または/etc/mail/aliases
でフィルターを設定できます。 Solarisには便利なフィルタリングツールがプリインストールされているとは思いません。このための古典的なプログラムは procmail です。 |/usr/local/bin/procmail
をフィルターとして使用し、次のようなものを~/.procmailrc
(未テスト)として使用します。
:0
* ^From: Cron Daemon <[email protected]>
* ^Subject: Cron .*
! [email protected]
または、ジョブの出力をcrontabから明示的にメールで送信することもできます。インストール moreutils (Solarisでのコンパイルがどれほど簡単かわかりません)。これには、標準入力が空でない場合にのみプログラムを実行するコマンドifne
が含まれています。
… 2>&1 | ifne mailx -s 'Cron output' [email protected]
メールエイリアスを無視するSolaris cron? に投稿されたコードは、これがまだ機能しないユーザーを明確にするのに役立ちます。
Solarisがそんなに異なっていたのを覚えていません。
-からへのペアを簡単に配置できる/etc/aliases
ファイル(Solarisでは別の場所にある可能性がありますか?)はありませんか?
その後、newaliases
は変更をアクティブにする必要があります。