業務用スクリプト。
DNSサーバのどこかに置き、指定されたディレクトリ内の名前が「FQDN.zone」で終わるすべてのファイルの末尾に、DMARCポリシー用のTXTレコードを追加するスクリプト。
※ご利用の際は必ずテストを行ってください。
※改変すれば、その他のレコード追加時にも使えると思います。
※コマンドが通らないときはwhichして探してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
#!/bin/bash # zoneファイルがある場所 PATH="/var/named/zone" #PATH="./zone_test" # テスト用 i=0 j=0 for zone_file in `\/usr/bin/find ${PATH} -maxdepth 1 -name '*.zone'`; do echo "file path -> ${zone_file}" # get hostname base=${zone_file#${PATH}/} echo "base -> ${base}" host=${base%.zone} echo "host -> ${host}" echo "${host} Start ----------" ret=`\/bin/grep "v=DMARC1;" "$zone_file"` if [ "$ret" ]; then # "v=DMARC1;"がすでに書いてあったらスキップ echo 'dmarc record is already exist.' i=$((++i)) else # backupしたければ#を外す #ext=`/bin/date "+%Y%m%d"` #/bin/cp $zone_file "$zone_file.$ext" # add dmarc record echo 'Adding dmarc record...' echo "_dmarc IN TXT \"v=DMARC1; p=none\"" >> $zone_file j=$((++j)) fi echo 'Complete add record.' echo "${host} End ----------" done total=$(($i+$j)) echo "Files nothing to do = $i" echo "Files added record = $j" echo "total = $total" exit |