Ubuntuにpostfixを入れてLocalで送受信した、CronからもLocalに飛ばした
前回までのお話。
cronのログを分けてファイルに出すよ
さて、膨大に出てしまうログをどげんかせんといかん。
復習。
ん-。別にログ捨ててもいいんだけど……とりあえずこうしてみた。標準出力と標準エラー出力を分けて出してみる。
25 15 * * * bash /home/user_name/shutter.sh 1>>/share/normal.txt 2>>/share/error.txt
あれー、両方そこそこ出てきた。oh。しかもログ日時出てこない……なんてこと。
このログいじれるのかな、いじるれるとしてもちょっとな……基本スクショが撮れてたら成功ってことで問題はないんだけど。
Postfix入れてみるよ
MTA入れたらエラーメール飛んでくるのかしら。そっちの中身はどうなるのかしら。やってみるか。
このあたりごにょごにょしすぎて参考資料が貼れないのですが、とりあえずpostfixっていうのがいちばん簡単らしい(これで!?簡単!?なの!?いろいろ大変じゃったが??)ので、それを入れてみる。
$ sudo apt-get install postfix
おや、、何やら設定画面が出てきたぞ。うーん、わからん。
最初「インターネットサイト」を選んで、なんとなく動いたような気がするがよくわからず、どうやら「設定なし」を選ぶのが定石らしい(with膨大な設定項目が出る設定ファイル……)のでアンインストール&再インストール。しかしやっぱりわからず、よく考えたら現状、テストだし外に出なくてよくない?ので、再度アンインストール&インストールで「ローカル」を選びましたよ。
アンインストールは
$ sudo apt-get purge postfix
最初はこれでできたのですが、次からできなくなった?はて。removeと違って、purgeは設定ファイルなんかもぜんぶ削除するよと聞いていたのですが。
$ sudo apt-get remove --purge postfix
こちらでできましたが……何らかのファイルは残ってしまっていた可能性ある。
設定するよ
あと設定ファイルは
/etc/postfix/main.cf
にあるとのことだったのですが、「設定なし」の場合は、なかったので、こちらを参考に、
こうした。
$ sudo cp /usr/share/postfix/main.cf.dist /etc/postfix/main.cf
$ sudo vi /etc/postfix/main.cf
「インターネットサイト」と「ローカル」を選んだときは最初からあったのだけれど。
なお、そのときは、sudoなしで開いてしまい、保存ができなくなって慌てるなどしました。
ローカル選択時の設定については、こちらを参考にしました。Ubuntuではないけれど。
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を使っても、成功時もなんらかのログが出る。どこかごにょごにょすれば出なくなるのかな。