アプリ版:「スタンプのみでお礼する」機能のリリースについて

crontabにて、特定の処理の前でメール送信先をMAILTO環境変数を設定し、その処理の後でデフォルトのメール送信先に戻したいのですが、戻すにはどのように設定すればよいでしょうか。

「MAILTO=""」だとメールが送信されなくなりますので、コマンドであれば「unset MAILTO」のような作業が必要になるのではないかと思いますが、同等の記述をcrontabで行う方法が分かりません。

crontabのオーナーを設定すればいいのでしょうが、もしMAILTOを解除する設定があるのであればそちらの方が良いと思いまして。

http://www.linux.or.jp/JM/html/cron/man5/crontab …
> 結果メールを送る必要が生じた場合、 MAILTO も参照する。
> もしMAILTOが定義されていたら (およびそれが空でなかったら)
> その名前のユーザーにメールを送る。 MAILTO が定義されていても
> 値が設定されていなければ (MAILTO="")、 メールは送信されない。
> MAILTO が定義もされていなければ、メールは crontab の所有者に
> 送られる。

環境:Red Hat Enterprise Linux ES release 4

A 回答 (3件)

解除する手段はないと思います。



>crontabのオーナーを設定すればいいのでしょうが、
他の手段としては、オーナーにメールして欲しいcron行を先に書いて、その後で、MAILTO= を書けばいいのでは?
    • good
    • 0
この回答へのお礼

> 解除する手段はないと思います。

ご回答ありがとうございます。

> >crontabのオーナーを設定すればいいのでしょうが、
> 他の手段としては、オーナーにメールして欲しいcron行を先に書いて、その後で、MAILTO= を書けばいいのでは?

そう思います。
でもある程度カテゴライズして並べてある場合が多く、わざわざ移動したりするのは面倒なので、以下のようにしようかと思っています。

MAILTO=変更したメールアドレス
* * * * * コマンド
MAILTO=crontabのオーナーユーザー名

お礼日時:2010/04/13 00:22

envを使用して、そのコマンドを実行する間だけ環境変数を渡せばよいのでは?


env MAILTO="mailto" Command
のように。

この回答への補足

回答ありがとうございます。

確認しておりませんが、おっしゃる方法でも対応可能であると思います。
ですが、crontab内でわざわざ環境変数の設定を行えるようにしているのであれば、解除の方法があってもしかるべきかと思いまして質問させて頂きました。

マニュアルに記載していないのは、特別に方法は用意されていないのか、それとも一般的に知られ過ぎているのでわざわざ書いていないのかが分からなかったためです。

補足日時:2010/04/12 20:32
    • good
    • 0

そこに載ってる方法ではだめなのですか?



0 22 * * 1-5 mail -s "午後10時だ" joe%ジョー、%%お前の子どもはどこだい?%

これは(MAILTOで設定したpaul宛ではなく)mailコマンドでユーザーjoeへメールを送るものです

/path/to/実行コマンド | /bin/mail -s 'Result' 送り先
みたいにして、実行結果をそのままメールにしてしまうこともできます。

この回答への補足

回答ありがとうございます。

記載頂いたうちの後者については、上記の仕様を満たすと思います。
ただ、コマンド出力をcrontabオーナーにメールで送るというcronの標準機能(エラー時のみ出力があるようにする場合が多いと思います)にて、対応できないかと思って質問致しました。

補足日時:2010/04/12 20:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!