设为首页 收藏本站
查看: 897|回复: 0

[经验分享] perl中的几个模块使用.

[复制链接]

尚未签到

发表于 2018-8-31 13:13:11 | 显示全部楼层 |阅读模式
perlCPAN模块DBI.DBD::Mysql
  


  • my $db_host = "localhost";
  • my $db_port = "3306";
  • my $db_user = "root";
  • my $db_pass = "redhat";
  • my $db_name = "test";
  • my $dsn = "DBI:mysql:$db_name:$db_host:$db_port";
  • my $dbh = DBI->connect($dsn,$db_user,$db_pass,{RaiseError => 0,PrintError => 0}) or return ("0");
  •     $dbh->do("set names gbk");
  • #   my $sth = $dbh->prepare("select * from mysql.user");
  • #      $sth->execute();
  • #               while(my @row = $sth->fetchrow_array){
  •                 #       print "@row\n";
  • #   }
  •         $sth = $dbh->prepare("SHOW SLAVE STATUS");
  •         $sth->execute();
  •                 while(my $hash=$sth->fetchrow_hashref){
  •                         my $iostate = $hash->{'Slave_IO_Running'};
  •                         my $sqlstate = $hash->{'Slave_SQL_Running'};
  • #       print "$iostate\n$sqlstate\n";
  •                                 if ($iostate eq 'No' || $sqlstate eq 'No'){
  •                                         warn "Mysql Slave database down..\n";
  •     }
  •   }
  

  perl标准模块Net::Ping和IO::Socket
  


  • #!/usr/bin/perl
  • use warnings;
  • use strict;
  • use IO::Socket;
  • use Net::Ping;
  • my $host = "192.168.1.2";
  • my $port = "80";
  • my $p=Net::Ping->new("icmp");
  • $p->ping($host,5) ? print "$host: runing\n" : print "$host: down\n";
  • my $sock = IO::Socket::INET->new(
  •                         Timeout => 4,
  •                         PeerAddr => $host,
  •                         Peerport => $port,
  •                         Proto   => "tcp",
  • );
  • $sock ? print "$port: Listening\n" : print "$port: faild\n";
  

perl标准模块中FIle::Find的使用方法.
  


  • #!/usr/bin/perl
  • use warnings;
  • use strict;
  • use File::Find;
  • my $path="/etc/";
  • sub wanted{
  •         my $file=$File::Find::name;
  •         if(-f $file and -s $file > 5000 and -s $file < 10000){
  •         if($file =~m/\.conf$/){
  •         print &quot;$file\n&quot;;
  •   }
  • }
  • }
  • find(\&wanted,$path);
  

  perl标准模块Net::SMTP和依赖CPAN模块Net::SMTP_auth认证模块.
  


  • #!/usr/bin/perl
  • use warnings;
  • #use strict;
  • use Net::SMTP;
  • use Net::SMTP_auth;
  • my $smtp_mail_host = 'smtp.sinanet.com';
  • my $mail_user_from = 'donghui@leju.sina.com.cn';
  • my $mail_user_to = 'donghui@leju.sina.com.cn';
  • my $mail_user_pass = &quot;P@ssW0rd&quot;;
  • my $mail_helo = 'mail.sinanet.com';
  • $smtp = Net::SMTP->new(
  •                 Host => &quot;$smtp_mail_host&quot;,
  •                 Hello => &quot;$mail_helo&quot;,
  •                 Timeout => 40,
  •                 Debug => 1,
  • ) or die &quot;can not connect mail server\n&quot;;
  • $smtp->auth(&quot;$mail_user_from&quot;,&quot;$mail_user_pass&quot;) or die &quot;auth failed!\n&quot;;
  • $smtp->mail(&quot;$mail_user_from&quot;);
  • $smtp->to(&quot;$mail_user_to&quot;);
  • $smtp->data();
  • $smtp->datasend(&quot;mail test!!\n&quot;);
  • $smtp->datasend(&quot;donghui\n&quot;);
  • $smtp->dataend();
  • $smtp->quit();

  

perl中远程执行命令CPAN模块:Expect  


  


  • #!/usr/bin/perl
  • use warnings;
  • use strict;
  • use Expect;
  • my $host = &quot;192.168.1.2&quot;;
  • my $pass = &quot;redhat&quot;;
  • $ENV{'TERM'} = &quot;xterm&quot;;
  • my $exp = Expect->new;
  •    $exp->log_stdout(0);
  •    $exp = Expect->spawn(&quot;ssh -l root $host&quot;) or die &quot;can't conenct $host\n&quot;;
  •    $exp->log_file(&quot;ssh_host.log&quot;,&quot;w&quot;);
  •    $exp->expect(3,[qr/connecting \(yes\/no\)/i,
  •                         sub{
  •                                 my $self = shift;
  •                                 $self->send(&quot;yes\n&quot;);
  •                                 exp_continue;
  • }],
  • [
  •         qr/password:/i,
  •         sub{
  •                 my $self = shift;
  •                 $self->send(&quot;$pass\n&quot;);
  •                 exp_continue;
  • }]
  • );
  • $exp->send(&quot;netstat -ntpl\n&quot;) if ($exp->expect(undef,'#'));
  • $exp->send(&quot;exit\n&quot;) if($exp->expect(undef,'#'));
  • $exp->log_file(undef);



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-559408-1-1.html 上篇帖子: Perl 开发的学习-2 下篇帖子: Perl中++的说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表