zcl_ccc 发表于 2018-8-17 10:19:51

shell应用——整理域名信息

  公司有多域名,但是工作的原因负责续费的同事把域名信息弄丢,不得以,只能从服务器的配置文件中整理一份给他(分为nginx和apace)!
  
同事初步从服务配置文件整理出各个服务器上配置的域名,信息如下,但是负责人只要域名!好吧,这几千个域名让我手动改的啥时候去了,不说了,上shell!
  
整理出的文件大致格式如下:
  


[*]1.1.1.1
[*]# cat nginx.conf | grep server_name
[*] server_names_hash_bucket_size 128;
[*]#    server_namewww.xxx.com xxx.com;
[*]#    server_namewww.xxx.com www8.xxx.com xxx.com;
[*]#    server_namexxxx.com www.xxxx.com www8.xxxx.com;
[*]#    server_nameimages1.xxx.com;
[*]#    server_nameimages.xxxx.com;
[*]    server_namewww.yyy.hk;
[*]    server_nameimages.yyy.hk;
[*]
[*]2.2.2.2
[*]# cat nginx.conf| grep server_name
[*]server_names_hash_bucket_size 128;
[*]   server_namewww.nnn.com;
[*]#    server_namesoft.xxx.com;
[*]    server_nameimages.yyy.hk;
[*]    server_namewww.yyy.hk;
[*]# cat 00000.default.conf| grep ServerName
[*]      ServerName www.bbbb00.com
[*]      ServerName www.bbbb22.com
[*]      ServerName www.bbbb42.com
[*]      ServerName www.bbbb62.com
[*]      ServerName www.bbbb82.com
[*]ServerAlias www.bbbb01.com www.bbbb02.com www.bbbb03.com www.bbbb04.com www.bbbb05.com www.bbbb06.com www.bbbb07.com www.bbbb08.com www.bbbb09.com www.bbbb10.com www.bbbb11.com www.bbbb12.com www.bbbb13.com www.bbbb14.com www.bbbb15.com www.bbbb16.com www.bbbb17.com www.bbbb18.com www.bbbb19.com www.bbbb20.com www.bbbb21.com
[*]
[*]
  

  总之一大坨,很讨人厌!
  
根据这个文件需要解决的问题:
  
1:文件格式 我这是window的文件在linux上处理
  
2:去掉ip地址
  
3:去掉# cat nginx.conf | grep server_name和server_names_hash_bucket_size 128;内容(有的shell是-bash.*#这样的不是[]包括的)
  
4:去掉;
  
5:去掉空格
  
6:截取域名
  
7:去掉#号
  
8:去掉重复行
  
脚本如下
  


[*]#!/bin/bash
[*]#author junun
[*]#blog http://angus717.blog.51cto.com
[*]
[*]#sed '/^\s*$/d' source.txt
[*]sed-r -i '/[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/d' source.txt
[*]sed -i '/\[.*\]# .*/d' source.txt
[*]sed -i '/-bash.*#/d' source.txt
[*]sed -i '/server_names_hash_bucket_size/d' source.txt
[*]sed -i 's/#//g' source.txt
[*]sed -i 's/server_name//g' source.txt
[*]sed -i 's/ServerName//g' source.txt
[*]sed -i 's/ServerAlias//g' source.txt
[*]sed -i 's/;//g' source.txt
[*]sed -i '/^[[:space:]]*$/d' source.txt
[*]rpm -qa | grep -i"dos2unix"
[*][ $? -eq 0 ] || yum install dos2unix unix2dos -y
[*]
[*][ -f 33.txt ] && mv 33.txt 33.txt.bak
[*][ -f 333.txt ] && mv 333.txt 333.txt.bak
[*]while read line;do
[*]    for i in `cat $line`;do
[*]      echo $i
[*]      m=`echo $i |awk -F"." '{print $3}' | wc -c`
[*]      if [ $m -eq 1];then
[*]            echo $i >> 33.txt
[*]      else
[*]            echo $i | cut -d. -f2-3 >> 33.txt
[*]      fi
[*]    done
[*]done333.txt
  



页: [1]
查看完整版本: shell应用——整理域名信息