测试网页是否开启了gzip或deflate压缩

  1. [root@Nagios ~]# curl -I -H 'Accept-Encoding: gzip,deflate' baiqiuyi.com 2>/dev/null|perl -ne 'print if /gzip/||/deflate/'
  2. Content-Encoding: gzip

perl生成随机密码

perl生成随机密码

  1. [root@Nagios a]# perl -le 'print map{(a..z,A..Z,0..9)[rand 64]}0..pop' 8
  2. jm6sKgVlW

perl获取google pagerank

  1. [root@Nagios s]# more pagerank.pl
  2. #!/usr/bin/perl -w
  3. use strict;
  4. use WWW::Google::PageRank;
  5. my $u = $ARGV[0];
  6. my $p = WWW::Google::PageRank->new;
  7. if(!$ARGV[0]){
  8.     print "undefined!\n./$0 baiqiuyi.com\n";
  9. }else{
  10.     print "Google PR is ",scalar($p->get('http://'.$u)), "\n";
  11. }
  12. [root@Nagios s]# perl pagerank.pl
  13. undefined!
  14. ./pagerank.pl baiqiuyi.com
  15. [root@Nagios s]# perl pagerank.pl baiqiuyi.com
  16. Google PR is 2

因为前阵子其中一台linux服务器上的wordpress的站点全被挂了马,清理了一次没仔细查,这次全面检查了一下果然发现了个后门,但是来不及了 PR已经被降为2。
期间一次被Google列入会损害客户电脑的黑名单,导致PR由3变为了2我估计!
Google更新pageran后 我的博客pagerank=2
2009年4月3日 pagerank更新了

perl脚本检查网站的pagerank

perl的命令行接受参数,用来检查网站的pr.
用到WWW::Google::PageRank模块,快速小巧!

  1. [root@Centos perl]# perl pr.pl baiqiuyi.com
  2. 3
  3.  
  4. [root@Centos perl]# more pr.pl
  5. #!/usr/bin/perl -w
  6. #用法为: perl pr.pl SomeDomain
  7. #不用带http://
  8. use strict;
  9. use WWW::Google::PageRank;
  10. my $url = $ARGV[0];
  11. my $pr = WWW::Google::PageRank->new;
  12. print scalar($pr->get('http://'.$url)), "\n";

perl ping检测脚本

我的第一个用于生产环境的perl脚本,虽然不是很优秀,但也迈出了扎实的一步 :)
领导有任务,给一批IP列表,ping每一台机器,如果没有响应就发邮件通知,通知的邮件需要分开,不能通知一个列表,得一封一封的通知.
用到email::send模块,因为需要用到Gmail

  1. #!/usr/bin/perl
  2. use warnings;
  3. use strict;
  4. use Email::Send;
  5. use Email::Send::Gmail;
  6. use Email::Simple::Creator;
  7. my @list = qw/
  8. 1.1.1.1
  9. 2.2.2.2
  10. 3.3.3.3
  11. /;
  12. foreach my $re (@list){
  13.         my $p = `ping $re -c 3`;
  14.         if($p=~/100% packet loss/){
  15.                 my $email = Email::Simple->create(
  16.                 header => [
  17.                 From    => 'monitor@a.com',
  18.                 To      => 'monitor@b.com',
  19.                 Subject => "$re 100% packet loss",
  20. ],
  21. body => "$re the server is down!\n",
  22.  );
  23.                 my $sender = Email::Send->new(
  24.                 { mailer => 'Gmail',
  25.                 mailer_args => [
  26.                 username => 'monitor@a.com',
  27.                 password => 'xxx',
  28.                 ]
  29.                 }
  30. );
  31.         eval { $sender->send($email) };
  32.         die "Error sending email: $@" if $@;
  33.         }
  34. }