web-dev-qa-db-ja.com

Solaris:cron電子メールを転送する方法は?

cronジョブが出力を生成する場合、それはユーザーのアカウントに電子メールで送信されます。

このメールを別のメールアカウントにリダイレクトしたいと思います。できればユーザーごとに。

他の投稿でよく言及されるいくつかのオプションを調べました。

  1. Cron MAILTO変数を使用します。動作しません。これはSolarisではサポートされていません。これはLinuxのものであり、場合によってはBSDのものでもありますが、Solarisには確かに存在しません。

  2. ~/.forwardファイルを使用します。それを機能させることはできません。これは、このファイルが実際にsendmailユニバースに関連しており、Solariscronが実際にsendmailを使用して電子メールを送信しているかどうかがわからないためだと思います。

これを理解するには、Solariscronがどのメカニズムで電子メールを送信するかを正確に理解する必要があると思います。

誰でも ?

4
unixhacker2010

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? に投稿されたコードは、これがまだ機能しないユーザーを明確にするのに役立ちます。

1
Nestor Urquiza

Solarisがそんなに異なっていたのを覚えていません。

-からへのペアを簡単に配置できる/etc/aliasesファイル(Solarisでは別の場所にある可能性がありますか?)はありませんか?

その後、newaliasesは変更をアクティブにする必要があります。

1
Nils