美文网首页
自动给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