当前位置: 主页 > 脚本 >

perl的采集入库脚本(以前用的没需求了就没更新

时间:2013-04-23 11:50来源:www.shencan.net 作者:shencan 点击:
#!的/ usr / bin中/ perl-W的 使用DBI 的strftime,使用POSIX QW(); 我胸径美元= DBI-连接(DBI:mysql的shencan:111.1.32.153:3306,shencan,shencan ); #$ SQL =SELECT *从shencan.LVS # 我某事= $ $ DBH-准备(
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


#!的/ usr / bin中/ perl-W的
使用DBI 
的strftime,使用POSIX QW(); 
我胸径美元= DBI->连接(“DBI:mysql的shencan:111.1.32.153:3306”,“shencan”,“shencan” ); 
#$ SQL =“SELECT *从shencan.LVS” 
我某事= $ $ DBH->准备(SQL); 
#和$ sth-> execute()方法; 
我的$ HOSTNAME =`主机` 
格格( $ HOSTNAME); 
我型
我hostinfo的; 
而($主机= $ STH->的fetchrow_hashref())
#{ 
#$主机- > {主机名} $主机名> {HOSTIP} \ N“; 

#@值,
而(值= $ STH-> fetchrow_array())
#{ 
#“@值\ N”; 
#} 
#我SQL =“更新shencan.LVS的设置节点='CBN_CQ'哪里主机='CBN-CQ-1-3Z2“; 
#$ STH = $ DBH->准备($ SQL); 
#$ STH-> execute()方法;

#####MySQL更新SUB启动#####
子更新{ 
$ SQL =移位@ _; 
我mysqlupdate = $ DBH->准备($ SQL); 
mysqlupdate>的execute(); 

## ##MySQL更新的SUB完#####

#子SCselect { 
#$ SQL =移位@ _ 
#$ myselect = $ DBH->准备(SQL); 
#$ myselect-> execute()方法; 
而($ hostinfo。= $ myselect>的fetchrow_hashref() ){打印“型的\ n”;打印“$ hostinfo-> {$} \ N”;} 
}

#####MYSQL选择子START#####
子shencan { 
我shencan = @ _; 
的foreach $型(@ shencan)的{ 
我的sql =“选择*从shencan.FC其中hostname ='$ HOSTNAME' “ 
我myselect = $ DBH->准备($ SQL); 
$ myselect-> execute()方法,
而($ hostinfo = $ myselect>的fetchrow_hashref()){ 
返回“$ hostinfo。> {$}”; 



#####MYSQL SELECT######SUB完

#####MYSQL SELECT START#######
$ FC = shencan的“fcversion” 
格格($ FC)
我OS = shencan“OS” 
格格(OS); 
我ARCH = shencan “拱” 
格格(拱); 
我$ FDNS = shencan“fdnsversion”; 
Chomp的($ FDNS); 
我NG = shencan“ngversion” 
格格($纳克); 
我AMR = shencan“amrversion”; 
格格(AMR); 
我哦= shencan“ohversion” 
格格(哦)
我分米= shencan的“dmversion”; 
格格(DM); 
cpisbin = shencan的“cpisbinversion” 
格格($ cpisbin); 
我节点= shencan“节点” 
格格(节点); 
我的类型1美元= shencan“类型”; 
格格($ I型); 
#####MYSQL选择结束######

####检查NG版本开始#####
$ NG =的`rpm-Q吴`; 
格格(NG); 
####检查NG版END#####

####检查AMR版本开始#####
我AMR AMR =的`rpm-Q`; 
格格(AMR), 
####检查AMR版本完#####

####检查俄亥俄州的版本开始#####
我的`rpm-Q OH OH`; 
格格(OH) 
####检查OH版本END#####

####检查DM版本开始#####
我的DM =的`rpm-Q DM`; 
格格(DM); 
####检查DM版本结束#####

####查看MFTT版本START ##### #####
$ MFTT =的`rpm-Q MFTT`; 
格格($ MFTT) 
####检查MFTT版本END

####检查CPISBIN版本开始#####
$ CPISBIN =的`rpm-Q CPISBIN`; 
格格($ CPISBIN) 
####检查CPISBIN版本完#####

####校验节点START#####
我的@节点=分裂(/ - / $ HOSTNAME); 
节点=“$节点[0]节点[1]” 
####检查节点完#####

####检查拱星#####
我的$ ARCH =`拱`; 
格格($ ARCH); 
#####检查ARCH END#####

####检查EP53状态和更新开始#####
$ ep53 =`挖\ @ 127.0.0.1 www.qq.com> / dev / null的&&回声OK | |呼应不好` 
格格($ ep53)
更新“更新shencan.FC ep53 ='$ ep53的主机名='$ HOSTNAME'” 
####检查EP53状态和更新完#####

####检查EP80状态和更新开始#####
$吉瓦=`路由-N | awk的'\ $ 1 ==“0.0.0.0”{\ $ 2}'| awk的-F“。”{打印\ $ 1“。”\ $ 2“。”\ $ 3}'`; 
格格(毛重$); 
我$ IP =`IP一个| grep的INET | grep的毛重元|用awk-F“[/]”'{打印\ $ 6}'`; 
格格(IP); 
我EP80 =`卷曲-H“主机:www.qq.com的”-o / dev / null的-S-W“%{HTTP_CODE}的”http:// $ IP `; 
格格(EP80)
更新“更新shencan.FC EP80 ='$ EP80其中hostname ='$ HOSTNAME'” 
####检查EP80状态和更新完#####

打印“NG:$ NG ARM:$ AMR OH:$ OH DM:DM MFTT:$ MFTT CPISBIN:$ CPISBIN的\ n”; 
打印“$ HOSTNAME节点:$ NODE操作系统:OS拱:$拱FC:$ FC FDNS:$ FDNS纳克:$纳克的\ n“;

#####检查OS开始######

子OS (操作系统,“</ ETC /发行”)
@线<OS>; 
$行= $行[0]; 
格格($行); 
我@ OS =分裂(/ \Ş+ | \(| \)/,$线); 
如果($ OS [0] GE“红”){ 
$ SC =“REHL $ OS [6]。$ OS [ 10]“; 
} { 
$ SC =“$ OS [0] $ OS [2]”; 

}

操作系统; 
接近(OS); 
#####查看操作系统END######

######检查的FDNS或名称版本开始######
开(FDNS的</等/汛/ app.d的/ cpisbm.amr的“); 
(<FDNS>){ 
如果(/ RestartCmd /){ 
我@ FC1 =分裂(/ \Ş+ /,$ _); 
我的$ FC =“$ FC1 [2]”,
如果($ FC GE“命名”){ 
$ FCVER =`/ USR / sbin目录/命名-V`; 
格格($ FCVER); 
我@ FC1 =分裂(/ \ + /,$ FCVER); 
$ FCVER1单位=“$ FC1 [0] $ FC1 [1]”;

}其他{ 
$ FCVER =`/ FlexiDNS /应用程序/ sbin目录/ FDNS-v`; 
格格($ FCVER); 
我@ FC1 =分裂(\Ş+ /,$ FCVER /); 
$ FCVER1 =“$ FC1 [0] $ FC1 [1]; 



接近(FDNS) 
######查看FDNS或名称版本端######

#####检查FCVERSION的类型开始######
开放(FC,“</等/汛/ app.d的/ cpisfc.amr的”); 
而(<FC>){ 
如果(/ / RestartCmd) { 
我@鱿鱼=分裂(/ \Ş+ /,$ _); 
我$ SQUID =“$鱿鱼[2]”; 
如果($ SQUID GE“鱿鱼”){ 
$ SQUIDVER =`/ USR /本地/鱿鱼/ sbin目录/鱿鱼-V |头-Ñ1 | awk的'{打印“V”\ $ 4}'`; 
格格($ SQUIDVER); 
$ TYPE =“FC5”; 
}其他{ 
$ SQUIDVER =`/ USR /本地/ flexicache /的sbin目录/ flexicache-v | awk的'{打印\ $ 3}'`; 
格格($ SQUIDVER); 
$ TYPE =“FC6”; 



接近(FC); 
#####检查FCVERSION及类型端# ###

###########
如果更改MYSQL ($ SQUIDVER式FC){ 
} { 
更新“更新shencan.FC集fcversion ='$ SQUIDVER'其中hostname ='$ HOSTNAME'”; 
}

如果($ NG式$ NG){

} { 
更新的“更新shencan.FC集ngversion ='NG'主机='$ HOSTNAME'”; 

($ DM当量$ DM){

} { 
更新的“更新shencan.FC集dmversion ='DM'其中hostname ='$ HOSTNAME'”; 
}

如果($ AMR EQ $ AMR){

} { 
更新“更新shencan.FC集amrversion ='$ AMR'其中hostname ='$ HOSTNAME'”; 
}

如果(美元OH当量$哦){

} { 
更新“更新shencan.FC集ohversion ='$ OH”,其中hostname ='$ HOSTNAME'“; 
}

如果($ CPISBIN EQ $ cpisbin){

} { 
更新“更新shencan.FC集cpisbinversion ='$ CPISBIN'其中hostname ='$ HOSTNAME'”; 

如果($节点式节点){

} { 
更新“更新shencan.FC设置节点='节点',其中hostname ='$ HOSTNAME'”; 
}

($ EQ类型1美元){

} { 
更新“更新shencan.FC集类型='$ TYPE'主机名='$ HOSTNAME'”; 
}

($ FCVER1式$ FDNS){ 
}否则{ 
更新的“更新shencan.FC集fdnsversion ='$ FCVER1'其中hostname ='$ HOSTNAME”'; 
}

(SC式$ OS){ 
}否则{ 
更新“更新shencan.FC集OS ='SC'其中hostname ='$ HOSTNAME'”; 
}

如果($ ARCH式拱){ 
} { 
更新“更新shencan.FC集拱='$ ARCH'其中hostname ='$ HOSTNAME'”; 
}

我时间的strftime“%Y-%m%的D_%H:%M:%S”,localtime的
格格(时间); 
更新“更新shencan.FC的设定lmtime ='$',其中hostname ='$ HOSTNAME'“;

转载请注明linux系统运维
http://www.linuxyw.com/linux/jiaoben/20130423/112.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片