perl 采集入库脚本分享
更新时间:2020年6月29日 13:42 点击:1581
#!/usr/bin/perl -w use DBI; use POSIX qw(strftime); my $dbh = DBI->connect(“DBI:mysql:shencan:111.1.32.153:3306″,”shencan”,”shencan”); #my $sql = “select * from shencan.LVS”; #my $sth = $dbh->prepare($sql); #$sth->execute(); my $HOSTNAME=`hostname`; chomp($HOSTNAME); my $type; my $hostinfo; #while($hostname = $sth->fetchrow_hashref()) #{ # print “$hostname->{hostname} $hostname->{hostip}\n”; #} #my @value; #while(@value = $sth->fetchrow_array()) #{ # print “@value\n”; #} #my $SQL = “update shencan.LVS set node='CBN_CQ' where hostname='CBN-CQ-1-3Z2′”; #my $STH = $dbh->prepare($SQL); #$STH->execute(); #####MYSQL UPDATE SUB START ##### sub update{ my $sql = shift @_; my $mysqlupdate = $dbh->prepare($sql); $mysqlupdate->execute(); } #####MYSQL UPDATE SUB END ##### #sub SCselect { # my $sql = shift @_; # my $myselect = $dbh->prepare($sql); # $myselect->execute(); # while($hostinfo = $myselect->fetchrow_hashref()) { print “$type\n” ;print “$hostinfo->{$type} \n” ;} #} #####MYSQL SELECT SUB START##### sub shencan { my @shencan = @_; foreach $type (@shencan){ my $sql = “select * from shencan.FC where hostname='$HOSTNAME'”; my $myselect = $dbh->prepare($sql); $myselect->execute(); while($hostinfo = $myselect->fetchrow_hashref()) { return “$hostinfo->{$type}” ; } } } #####MYSQL SELECT SUB END###### #####MYSQL SELECT START ####### my $FC =shencan “fcversion”; chomp($FC); my $os = shencan “OS”; chomp($os); my $arch = shencan “arch”; chomp($arch); my $fdns =shencan “fdnsversion”; chomp($fdns); my $ng = shencan “ngversion”; chomp($ng); my $amr =shencan “amrversion”; chomp($amr); my $oh =shencan “ohversion”; chomp($oh); my $dm = shencan “dmversion”; chomp($dm); my $cpisbin = shencan “cpisbinversion”; chomp($cpisbin); my $node = shencan “node”; chomp($node); my $type1 =shencan “type”; chomp($type1); #####MYSQL SELECT END###### ####CHECK NG VERSION START##### my $NG =`rpm -q NG`; chomp($NG); ####CHECK NG VERSION END##### ####CHECK AMR VERSION START##### my $AMR =`rpm -q AMR`; chomp($AMR); ####CHECK AMR VERSION END##### ####CHECK OH VERSION START##### my $OH =`rpm -q OH`; chomp($OH); ####CHECK OH VERSION END##### ####CHECK DM VERSION START##### my $DM =`rpm -q DM`; chomp($DM); ####CHECK DM VERSION END##### ####CHECK MFTT VERSION START##### my $MFTT =`rpm -q MFTT`; chomp($MFTT); ####CHECK MFTT VERSION END##### ####CHECK CPISBIN VERSION START##### my $CPISBIN = `rpm -q CPISBIN`; chomp($CPISBIN); ####CHECK CPISBIN VERSION END##### ####CHECK NODE START##### my @NODE=split(/-/,$HOSTNAME); $NODE = “$NODE[0]_$NODE[1]“; ####CHECK NODE END##### ####CHECK ARCH STAR ##### my $ARCH=`arch`; chomp($ARCH); #####CHECK ARCH END ##### ####CHECK EP53 STATUS AND UPDATE START##### my $ep53 =`dig \@127.0.0.1 www.qq.com >/dev/null && echo ok||echo bad`; chomp($ep53); update “update shencan.FC set ep53='$ep53′ where hostname='$HOSTNAME'”; ####CHECK EP53 STATUS AND UPDATE END##### ####CHECK EP80 STATUS AND UPDATE START##### my $GW=`route -n |awk ‘\$1==”0.0.0.0″{print \$2}'|awk -F”.” ‘{print \$1″.”\$2″.”\$3}'`; chomp($GW); my $IP=`ip a|grep inet|grep $GW|awk -F”[ /]” ‘{print\$6}'`; chomp($IP); my $ep80 =`curl -H “Host:www.qq.com” -o /dev/null -s -w “%{http_code}” http://$IP`; chomp($ep80); update “update shencan.FC set ep80='$ep80′ where hostname='$HOSTNAME'”; ####CHECK EP80 STATUS AND UPDATE END##### print “NG: $NG ARM: $AMR OH: $OH DM: $DM MFTT:$MFTT CPISBIN: $CPISBIN\n”; print “$HOSTNAME NODE: $NODE OS: $os arch: $arch FC: $FC fdns: $fdns ng: $ng\n”; #####CHECK OS START###### sub OS { open (OS,”</etc/issue”); @line =<OS>; $line= $line[0]; chomp($line); my @os =split(/\s+|\(|\)/,$line); if($os[0] ge “Red”){ $SC = “REHL$os[6].$os[10]“; }else{ $SC = “$os[0]$os[2]“; } } OS; close(OS); #####CHECK OS END###### ######CHECK FDNS OR NAME VERSION START###### open (FDNS,”</etc/ChinaCache/app.d/cpisbm.amr”); while(<FDNS>){ if(/RestartCmd/){ my @fc1 =split(/\s+/,$_); my $FC =”$fc1[2]“; if($FC ge “named”){ $FCVER=`/usr/sbin/named -v`; chomp($FCVER); my @FC1 =split(/\s+/,$FCVER); $FCVER1=”$FC1[0]$FC1[1]“; }else{ $FCVER=`/FlexiDNS/application/sbin/fdns -v`; chomp($FCVER); my @FC1 =split(/\s+/,$FCVER); $FCVER1=”$FC1[0]$FC1[1]“; } } } close(FDNS); ######CHECK FDNS OR NAME VERSION END###### #####CHECK FCVERSION AND TYPE START###### open (FC,”</etc/ChinaCache/app.d/cpisfc.amr”); while(<FC>){ if(/RestartCmd/){ my @squid =split(/\s+/,$_); my $SQUID =”$squid[2]“; if($SQUID ge “squid”){ $SQUIDVER=`/usr/local/squid/sbin/squid -v|head -n 1 |awk ‘{print “V”\$4}'`; chomp($SQUIDVER); $TYPE=”FC5″; }else { $SQUIDVER=`/usr/local/flexicache/sbin/flexicache -v|awk ‘{print \$3}'`; chomp($SQUIDVER); $TYPE=”FC6″; } } } close(FC); #####CHECK FCVERSION AND TYPE END###### ####Change MYSQL ####### if($SQUIDVER eq $FC){ }else{ update “update shencan.FC set fcversion='$SQUIDVER' where hostname='$HOSTNAME'”; } if($NG eq $ng){ }else{ update “update shencan.FC set ngversion='$NG' where hostname='$HOSTNAME'”; } if($DM eq $dm){ }else{ update “update shencan.FC set dmversion='$DM' where hostname='$HOSTNAME'”; } if($AMR eq $amr){ }else{ update “update shencan.FC set amrversion='$AMR' where hostname='$HOSTNAME'”; } if($OH eq $oh){ }else{ update “update shencan.FC set ohversion='$OH' where hostname='$HOSTNAME'”; } if($CPISBIN eq $cpisbin){ }else{ update “update shencan.FC set cpisbinversion='$CPISBIN' where hostname='$HOSTNAME'”; } if($NODE eq $node){ }else{ update “update shencan.FC set node='$NODE' where hostname='$HOSTNAME'”; } if($TYPE eq $type1){ }else{ update “update shencan.FC set type='$TYPE' where hostname='$HOSTNAME'”; } if($FCVER1 eq $fdns){ }else{ update “update shencan.FC set fdnsversion='$FCVER1′ where hostname='$HOSTNAME'”; } if($SC eq $os){ }else{ update “update shencan.FC set OS='$SC' where hostname='$HOSTNAME'”; } if($ARCH eq $arch){ }else{ update “update shencan.FC set arch='$ARCH' where hostname='$HOSTNAME'”; } my $time = strftime “%Y-%m-%d_%H:%M:%S”, localtime; chomp($time); update “update shencan.FC set lmtime='$time' where hostname='$HOSTNAME'”;
上一篇: perl面向对象实例
下一篇: 7个perl数组高级操作技巧分享
相关文章
- 本文为那些对学习 Windows PowerShell 命令行和脚本编写环境感兴趣的系统管理员提供了资源。也请告诉我们本网站如何才能对您更有用处。...2020-06-30
- 这篇文章主要介绍了Shell脚本中让进程休眠的方法,本文讲解的就是sleep的用法,可以实现睡觉若干秒、若干分钟、若干小时,需要的朋友可以参考下...2020-07-11
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
这篇文章主要介绍了 JavaScript 实现自己的安卓手机自动化工具脚本,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-05-14- 这篇文章主要介绍了自动设置安卓手机wifi代理的PowerShell脚本,帮助大家进行抓包测试,感兴趣的朋友可以了解下...2020-10-17
- 这两天在用Perl编写一些监控脚本,其实写代码也是一件挺有意思的事情,就是挺废时间的。而且,由于语法不太熟,基本想到一个东西都要先Google一下看怎么实现。...2020-06-29
- 下面小编就为大家带来一篇Perl与JS的对比分析(数组、哈希)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-29
- 一、简介 模式指在字符串中寻找的特定序列的字符,由反斜线包含:/def/即模式def。其用法如结合函数split将字符串用某模式分成多个单词:@array = split(/ /, $line);二、匹配...2020-06-29
- Perl时间函数localtime的使用介绍,这里简单的介绍下,更多请查看官方介绍...2020-06-29
- 这篇文章主要介绍了Perl中的特殊内置变量详细介绍,需要的朋友可以参考下...2020-06-29
- 一、列表 列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , "hello" , 2),空列表:()。 注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同...2020-06-29
- 这篇文章主要介绍了讲Perl中的本地时间与UNIX时间戳间相互转换的方法,主要用到了Perl中的Date::Parse模块,需要的朋友可以参考下...2020-06-29
- 对所有输入文件,如果没有版权信息则加上版权信息,否则什么都不做,并对原文件以.bak结尾备份,需要的朋友可以参考下...2020-06-29
- 这篇文章主要介绍了Perl学习笔记之CPAN使用介绍,本文讲解了什么是CPAN、CPAN的目录作用介绍、CPAN安装Perl Module的两种方法等内容,需要的朋友可以参考下...2020-06-29
- 这篇文章主要介绍了Perl中使用MIME::Lite发送邮件实例,本文介绍了使用sendmail方式发送、发送HTML格式邮件、smtp方式发送邮件等内容,需要的朋友可以参考下...2020-06-29
- 今天看到国外的一篇文章可以在cmd中运行95版本的ps1格式的批处理,但经过测试默认情况下powershell支不支持执行脚本需要执行如下操作...2020-06-30
- 这篇文章主要介绍了Perl AnyEvent中的watcher实例,关于AnyEvent请参阅的更多介绍请参阅文中的相关链接,需要的朋友可以参考下...2020-06-29
- 弄懂shell程序,源代码,以及python脚本能够向运维开发方向走,shell程序能够管理集群,提高开发的效率,shell是命令解释器,调用系统内核,帮助你对内核的刷新认识...2021-09-06
- 这篇文章主要介绍了Jmeter如何基于命令行运行jmx脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-22
- perl获取日期与时间的例子,供大家学习参考...2020-06-29
- 本文我们将会学习一下在shell脚本中如何使用正则表达式,常用的shell正则表达式,当然重点还是如何在shell脚本中用正则表达式匹配IP及Email。 shell也可以使用正则分...2016-11-25