美文网首页
自动给dns 添加serial 数字的脚本

自动给dns 添加serial 数字的脚本

作者: bjmingyang | 来源:发表于2019-10-16 16:37 被阅读0次

#!/bin/bash

ZONES_PATH="/var/named/master/"
DATE=`date +%Y%m%d`
echo "+++++++data++++"
echo $DATE
NEEDLE="Serial"
status=`cat status`
status_time=`echo $status|cut -c 1-8`
status_snumber=`echo $status|cut -c 9-10`
for ZONE in $(ls -1 $ZONES_PATH) ; do
#ZONE=mb.tripadvisor.com.hosts
    curr1=$(/bin/grep -i -e "${NEEDLE}$" $ZONES_PATH/${ZONE} | /bin/sed -n "s/^\s*\([0-9]*\)\s*;\s*${NEEDLE}\s*/\1/p")
    # replace if current date is shorter (possibly using different format)
curr=`echo $curr1|cut -c 1-8`
echo "**8 curr**"
echo $curr

if [[ $curr -lt $DATE ]] ; then
     echo "**status**"
     echo $status
       if [ [ $status_time -lt $DATE ]] ;   then
         serial="${DATE}00"
         echo $serial > status
         echo "status_time $status_time -lt DATE $DATE"
         echo $serial
     else
         echo "$status_time gt or ne  date $DATE"
         serial=`expr $status + 1 `
         echo $serial
         echo $serial > status
     fi
else
   echo curr "$curr gt or ne DATE $DATE"
      if [[ $curr1 -gt $status ]] ;   then
       echo "curr serial number $curr1 gt  status file number $status and gt curr date force use curr date"
       serial="${DATE}00"
       echo $serial > status
       echo $serial
     else
       echo "curr serial number $curr1 lt or ne  status file number $status"
       serial=`expr $status + 1`
       echo $serial
       echo $serial > status
     fi
fi



/bin/sed -i -e "s/^\(\s*\)[0-9]\{0,\}\(\s*;\s*${NEEDLE}\)$/\1${serial}\2/" ${ZONES_PATH}/${ZONE}
echo "${ZONE}: "
grep "; ${NEEDLE}$" $ZONES_PATH/${ZONE}
done

相关文章

网友评论

      本文标题:自动给dns 添加serial 数字的脚本

      本文链接:https://www.haomeiwen.com/subject/vuqumctx.html