--- title: ドメインの残り有効期限を取得するシェルスクリプト date: 2013-01-14T15:04:05Z author: kazu634 images: - "ogp/2013-01-14-check_domain_expiration.webp" categories: - インフラ tags: - DNS - Domain - ShellScript --- とあるところで独自ドメインの更新忘れが起きていて、名前解決できていない状態になっていました。。。独自ドメインの更新忘れはかなり致命的な状況に陥ることに気づいたので、監視できる仕組みを構築せねばということで、調べて作成してみました。 ## 前提条件 whoisコマンドが使用出来ることが前提です。debian系なら、「aptitude install whois」してください。また、「.com」しか対象にしていません。 ## 作成したシェルスクリプト 作成したシェルスクリプトはGistでも公開しています。以下の通りです: ``` ######################################## # Name: Kazuhiro MUSASHI # # about: # # Usage: # # Author: # Date: ######################################## set -e # Constants WHOIS='/usr/bin/whois' # Check the number of the arguments if [ $# -ne 1 ]; then exit 1 fi DOMAIN=$1 # Check the specified domain name if [ ! ${DOMAIN##*.} == "com" ]; then echo "Specify the .com domain name." exit 1 fi # Check whether the whois command exists or not if [ ! -x ${WHOIS} ]; then echo "${WHOIS} command does not exist." exit 1 fi # Execute the whois command EXPIRE=`${WHOIS} ${DOMAIN} | grep Expiration | tail -n 1 | cut -f 3 -d " "` # Convert the expiration date into seconds EXPIRE_SECS=`date +%s --date=${EXPIRE}` # Acquire the now seconds CURRENTDATE_SEC=`date +%s` # Calculate the remaining days ((DIFF_SEC=EXPIRE_SECS-CURRENTDATE_SEC)) REMAIN_DAYS=$((DIFF_SEC/86400)) echo ${REMAIN_DAYS} exit 0 ``` ## 参考にしたサイト ここがとても参考になりました。dateコマンドって色々と使えるんですね。 * Nagiosでドメイン失効を監視する このシェルスクリプトを Nagios に組み込んであげれば、監視の仕組み構築が完了ということになるかな。