How to spend the terminal

技術ブログでさえない

グローバルIPの変更をメールで通知するシェルスクリプト

グローバルIPアドレスは固定サービスを使わない限り変わります。 IPアドレスが変わってしまうといろいろ困るため、メールで通知するようなシェルスクリプトを書きました。 DiCE使えばこんな面倒なことしなくていい

#!/bin/sh -eu

MAIL_TO="TO"
SUBJECT="SUBJECT"

globalip="/var/tmp/globalip" #"XXX.XXX.XXX.XXX"だけ書かれたファイル
tmp=`mktemp`
curl -sS inet-ip.info > ${tmp}
set +e
cmp ${globalip} ${tmp} > /dev/null
res=$?
set -e

ip=`cat ${tmp}`

mail_send () {
echo ${ip} | mail -s "$SUBJECT" "$MAIL_TO"
}

if [ $res -eq 1 ]; then
        mail_send
        cat ${tmp} > ${globalip}
fi

exit 0

このスクリプトの問題点はcurlを使うことで、この手のグローバルIPを教えてくれるサイトはよく落ちます。
そのため、複数の候補から応答するものを使うようにしようと思っています。 また、以前のIPが書いてあるファイルがなければ作るなど改良したい所はいろいろあります。