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]