DNSのゾーンファイルの更新プログラム

大量のDNSのゾーンファイルを手動で更新していると,絶対不幸になる…ってわけで,自動化するためのスクリプトを作りました.

  • シリアル値を更新 update_serial.awk
  • TTLを6Hにする ttl_6H.sh
  • TTLを3Dにする ttl_3D.sh
  • TTLを1Wにする ttl_1W.sh

たとえばIPアドレスの更新が早く伝播するように,事前にTTLを6Hぐらいに減らしておくには.以下のような感じで,まず片っ端からTTLを減らして

IP=x.x.x.x; for x in /var/named/*.zone; do  
  POSTFIX=date '+%Y%m%d'
  mv $x /tmp/$x.$POSTFIX
  ttl_6H.awk /tmp/$x.$POSTFIX > $x
done

つぎに,シリアル値を更新.

IP=x.x.x.x; for x in /var/named/*.zone; do  
  POSTFIX=date '+%Y%m%d'
  mv $x /tmp/$x.$POSTFIX
  update_serial.awk /tmp/$x.$POSTFIX > $x
done

あとは named に reload させるだけ.

我ながら便利なものを作ってしまった.