web-dev-qa-db-ja.com

Crontabから実行されるMutt

コマンドラインmuttを介して電子メールを送信するbashスクリプトがあります。このbashスクリプトは、cronジョブから呼び出されています(スクリプト内のすべての項目を実行するには権限が必要なため、crontab -eを使用してセットアップします)。ユーザーが返信できるようにfromアドレスを設定します(これは正常に機能します)が、表示される名前は「root」です。これにより混乱が生じています。メールアドレスに関連付けられた名前を設定する実際の方法はありますか?

スクリプトのメール部分は次のとおりです。

[email protected]
export EMAIL

mutt -s "subject" -a /home/user/directory/file*.xls -- [email protected], [email protected] < /home/user/directory/message.txt

ありがとう

ケビン

4
klcant

正しい名前で送信している電子メールを確認する最も簡単な方法は、送信に必要なアカウントでcronジョブを実行することです。

me@domain:~$ crontab -e

Rootユーザーにmuttを介してメッセージを送信させたい場合は、この1つのライナーを試してください(私にとってはうまくいきました)。

export EMAIL="Me <[email protected]>" && mutt -s "subject" -a /home/user/directory/file*.xls -- [email protected], [email protected] < /home/user/directory/message.txt

お役に立てれば。

5
ruffEdgz

cronの代わりに/etc/crontabを使用します。これを使用して、開始する必要のあるコマンドの開始に使用されるユーザー名を含めることができます。

例:

more /etc/crontab 

ショー

#/ etc/crontab:システム全体のcrontab 
#他のcrontabとは異なり、「crontab」
#コマンドを実行して新しいバージョンをインストールする必要はありません。このファイル
#と/etc/cron.d内のファイルを編集します。これらのファイルには、ユーザー名フィールドもあります。
#他のどのcrontabもありません。
 
 Shell =/bin/sh 
 PATH =/usr/local/sbin :/ usr/local/bin:/ sbin:/ bin:/ usr/sbin:/ usr/bin 
 
#mh dom mon dow user command 
 17 * * * * root cd/&& run-parts --report /etc/cron.hourly
25 6 * * * root test -x/usr/sbin/anacron || (cd/&& run-parts --repor 
 t /etc/cron.daily)
 47 6 * * 7 root test -x/usr/sbin/anacron || (cd/&& run-parts --repor 
 t /etc/cron.weekly)
 52 6 1 * *ルートテスト-x/usr/sbin/anacron || (cd/&& run-parts --repor 
 t /etc/cron.monthly)
#

Cronからの行をこのファイルに含め、ダウ(曜日)とコマンドの間にユーザー名を追加します。その後、そのユーザーとしてスクリプトが開始されます。

これは、ユーザーcrontabでこれを行うよりも優れています。必要なすべてのユーザーに同じ行をここに含めることができ、複数のcrontabを維持する必要がないためです。

特定のファイルにアクセスするためにルートが必要な場合は、そのアクセス許可を変更するか、そのコマンドとユーザーを含むグループを作成する必要があります。

1
Rinzwind