いろいろやる課、書く係

いろいろなことを、たんたんと記録するブログ

Ubuntuにpostfixを入れてLocalで送受信した、CronからもLocalに飛ばした

前回までのお話。

sakimika.hateblo.jp

 

 

cronのログを分けてファイルに出すよ

さて、膨大に出てしまうログをどげんかせんといかん。

復習。

qiita.com

ん-。別にログ捨ててもいいんだけど……とりあえずこうしてみた。標準出力と標準エラー出力を分けて出してみる。

25 15 * * * bash /home/user_name/shutter.sh 1>>/share/normal.txt 2>>/share/error.txt

あれー、両方そこそこ出てきた。oh。しかもログ日時出てこない……なんてこと。

このログいじれるのかな、いじるれるとしてもちょっとな……基本スクショが撮れてたら成功ってことで問題はないんだけど。

 

Postfix入れてみるよ

MTA入れたらエラーメール飛んでくるのかしら。そっちの中身はどうなるのかしら。やってみるか。

cronitor.io

このあたりごにょごにょしすぎて参考資料が貼れないのですが、とりあえずpostfixっていうのがいちばん簡単らしい(これで!?簡単!?なの!?いろいろ大変じゃったが??)ので、それを入れてみる。

$ sudo apt-get install postfix

おや、、何やら設定画面が出てきたぞ。うーん、わからん。

最初「インターネットサイト」を選んで、なんとなく動いたような気がするがよくわからず、どうやら「設定なし」を選ぶのが定石らしい(with膨大な設定項目が出る設定ファイル……)のでアンインストール&再インストール。しかしやっぱりわからず、よく考えたら現状、テストだし外に出なくてよくない?ので、再度アンインストール&インストールで「ローカル」を選びましたよ。

アンインストールは

$ sudo apt-get purge postfix

最初はこれでできたのですが、次からできなくなった?はて。removeと違って、purgeは設定ファイルなんかもぜんぶ削除するよと聞いていたのですが。

$ sudo apt-get remove --purge postfix

こちらでできましたが……何らかのファイルは残ってしまっていた可能性ある。

 

設定するよ

あと設定ファイルは

/etc/postfix/main.cf

にあるとのことだったのですが、「設定なし」の場合は、なかったので、こちらを参考に、

www.kagoya.jp

こうした。

$ sudo cp /usr/share/postfix/main.cf.dist /etc/postfix/main.cf
$ sudo vi /etc/postfix/main.cf

「インターネットサイト」と「ローカル」を選んだときは最初からあったのだけれど。

なお、そのときは、sudoなしで開いてしまい、保存ができなくなって慌てるなどしました。

 

ローカル選択時の設定については、こちらを参考にしました。Ubuntuではないけれど。

hp.vector.co.jp

mydestnationに、真似して「example.local」を追加してみました。なお設定画面でドメインを設定していたら、ここに入る模様。それは消しました。

ほかは何もしてないなぁ。

inet_interface は設定してないので、デフォルトのlocalhostとなっているはず。

inet_protocols は、

inet_protocols = all

になってたけどそのまま。

mynetworks は、

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

になっててそのまま。

メールボックスも指定してないので、デフォルトの

/var/mail/user_name

という1つのファイルに、user_nameへのメールが全部保存される形式。

postfixの再起動が必要ならこれで。

$ sudo /etc/init.d/postfix restart

 

テストメールするよ

テストメールは、mailコマンドというのがあるらしく、それでやる。

$ sudo apt install mailutils

postfixアンインストールしたらなくなってたので、再度インストールしました。

$ mail hogehoge@example.local
Cc: 
Subject: test
hello world!!!

ピリオドで本文終了って意味だよってたくさん載ってたのですが、終了せず。

どうやらCtrl+Dで終了だったみたい。それがわからなかったので、もっぱら以下でテストしてました。

$ echo "これはテストです" | mail -s "テスト" 宛先メールアドレス

で、これをやると、デーモンさんからお返事がきます。それがメールボックスに入っておりますので確認すると、

hogehoge?知らん顔やな。

ってことらしい。なるほど。hogehogeというメールアカウントは存在しないということか。たしかに。

ではメールアカウントとはどうやってつくるのかというと、Ubuntuのアカウント=メールのアカウントということのようである。

作り方は上記の記事にありましたが、そこまではしなくていいやと思い、samba入れるときにユーザーつくったので、そっち宛に送ってみたところ、

/var/mail/samba_user

のファイルが生成された。なるほど。しかしいまはsamba_userではないので、ファイルが開けない。oh。このあたりは放置。

 

なお、テストメールの差出人は、

ユーザー表示名 <user_name@ubuntu>

ってことになっていたので、/var/mail/user_name のメールボックスに、デーモンさんからのお便りが届いたわけですね。

ちなみに設定ファイルは、

myhostname = ubuntu.localdomain
mydestination = $myhostname, ubuntu, localhost.localdomain, localhost, example.local

ってなってます。なんで@ubuntuが選ばれてるのかしら。送信元指定するには、

$ echo "これはテストです" | mail -s "テスト" 宛先メールアドレス -r 送信元メールアドレス

こうすればOK。詐称なのでなんでもいける。

宛先については、「Ubuntuアカウント名@mydestination」って組み合わせには届くみたい。

 

Cronからメール飛ばすよ

$ crotab -e

で編集画面を開き、最初にこれを入れる。

MAILTO="user_name@example.localhost"

保存して閉じる。

cronが実行されたのでメールボックスを見てみたところ、normal.txtの内容もerror.txtの内容も、両方来ていたよ。なんと。エラーだけかと思ったら。まったく要らぬわ。はい終了。

ちなみに、送信元アドレスが、

user_name@hogehoge.co.jp

って、一番最初にインストールしたときに設定したドメインになってるんですが、どこから来たのかしら??

myorigin = /etc/mailname

ここでした。アンインストールしても残ってた。

これがデフォルトになるっぽい。変更するには、ファイル内を書き換えるか、myoriginを書き換えるかすればよいものと思います。

 

まとめ

Cronのログをメールで飛ばして中身を確認するということをしたいがために、postfixを入れてみましたが大変でした。知識がなさすぎた。(外に接続するメールサーバーを構築しないといけなくなったら大変だな。)

結論としては、ログは要らんなと。スクリーンショットが撮れていればいいし、撮れてなくてもさほど問題ではないので。今のところ。

にしてもshutterはログ出すぎ。ほかのツールはないんかな。

なおgnome-screenshotを使っても、成功時もなんらかのログが出る。どこかごにょごにょすれば出なくなるのかな。