メールを送信するためにssmtpをインストールします。
yum install ssmtpsendmailがインストールされていればサービスを止め自動起動しないようにします。
service sendmail stop chkconfig sendmail offMTAをssmtpに切り替えます
下の例では2を入力しEnterを押すことでssmtpを利用するようになります。
alternatives --config mta There are 2 programs which provide 'mta'. Selection Command ----------------------------------------------- * +1 /usr/sbin/sendmail.sendmail 2 /usr/sbin/sendmail.ssmtp Enter to keep the current selection[+], or type selection number: 2そして、ssmtpの設定を行います。
vim /etc/ssmtp/ssmtp.conf root=hogehoge@gmail.com mailhub=smtp.gmail.com:587 AuthUser=hogehoge@gmail.com AuthPass=gmailのパスワード UseStarTTLS=YES下線部を自分のメールアドレスとパスワードに書き換えてください。
root宛にテストメールを送信
mail -v root Subject: test test mail Cc: Ctrl+dを押下これでうまく行っていれば先ほど設定したgmail宛に
メールが届きます。
ここまでくればあと一歩
あとは、前回作成した為替レート取得scriptと
合わせるだけです。
以下が私が作成した例です。
vim mailtest.sh #!/bin/sh address="hogehoge@gmail.com" subject=`date +"%Y/%m/%d %p %I:%M:%S"` body=`casperjs /usr/home/kaz/cron/ex.js` subject=`echo $subject | nkf -j` mail -s $subject $address << _EOT_ `echo $body | nkf -j` _EOT_ exit2行目のメールアドレスが転送したい宛先です。
3行目の+"%Y/%m/%d %p %I:%M:%S"の部分はメールの件名です
例では現在の"年/月/日 時:分:秒"がメールの件名で届きます。
4行目ではメールの本文を入力しています。
`casperjs /usr/home/kaz/cron/ex.js`というのは
/usr/home/kaz/cronにあるex.jsというファイルをcasperjsで実行するという意味で
「`」で囲むことで実行結果をbody変数へ代入しています。
あとは、8~10行目でメールを送信し完了です。
これでメールで為替レートを取得する仕組みが出来ましたので
これを定期的に実行するだけです。
いろいろなやり方があるようですが
私は以下のやり方で行っています。
vim /etc/crontab 以下を追記 0,10,20,30 * * * * root /usr/home/kaz/cron/exmail.sh分時
このように指定することで
毎時0、10、20、30分に為替レートがメールで飛んでくるようになります。
上記の例を以下のように書くことで10分おきにメールすることができます。
0,10,20,30,40,50 * * * *
ただし、岡崎市立中央図書館事件のような例もあるので
あまりやり過ぎには気を付けましょう。
最短でも10分とか1時間間隔なら大丈夫だと思いますが
そこは保証できませんのであしからず。
あと、script間違いやここがわからない等ありましたらコメントいただけると嬉しいです。
もっとコードが書けるように日々精進していきます。
0 件のコメント:
コメントを投稿