perl检测网站首页状态代码,随便写的,一起交流
- #!/usr/bin/perl?-w?
- ?
- use?strict;?
- use?LWP::UserAgent;?
- use?Net::SMTP;?
- use?POSIX?qw/strftime/;?
- ?
- print?<<EOF;?
- +--------------------------------------+?
- +----made?by?Henry?He?on?2011/03/03----+?
- +--------------------------------------+?
- EOF?
- ?
- my?@array?=?();?
- my?$count?=?0;?
- ?
- open?FILE,'<','url.txt'?or?die?"$!n";?
- ?
- while?(<FILE>)?{?
- ???????chomp;?
- ???????/(S+)/;?
- ???????push?@array,$1;?
- }?
- ?
- close?FILE;?
- ?
- foreach?my?$url?(@array)?{?
- ?
- ????????$count++;?
- ?
- ????????my?$obj?=?LWP::UserAgent->new(?
- ??????????????????????????????????????keep_alive=>1,?
- ??????????????????????????????????????timeout=>60);?
- ?
- ????????my?$req?=?HTTP::Request->new(GET=>"$url");?
- ?
- ????????my?$res?=?$obj->request($req);?
- ?
- ????????if?($res->is_success)?{?
- ????????????print?$url,"t",$res->status_line,"n";?
- ????????}?else?{?
- ????????????print?"$urltFailed:t","n";?
- ????????????sendemail("$urltFailed:t"?.?$res->status_line,"n");?
- ????????}?
- ?
- }?
- ?
- my?$cur_time?=?strftime?"%Y-%m-%d",localtime;?
- ?
- print?"n";?
- print?<<EOF;?
- +-------------------------------------+?
- +??????Finished?check?$count?urls?????+?
- +-------------------------------------+?
- EOF?
- ?
- printlog("finished?check?$count?urls?at?$cur_time...n");?
- ?
- sub?sendemail?{?
- ????my?$content?=?shift;?
- ????#change?it?for?your?smtp?server?
- ????my?$host?=?'smtp.163.com';?
- ????#your?email?account?here?
- ????my?$mail_from?=?'your_email_account';?
- ????#change?it?what?you?want?to?send?here?
- ????my?$mail_to?=?'abc@abc.com';?
- ????#email?subject?
- ????my?$subject?=?'Error?Notice';?
- ?
- ????my?$smtp?=?Net::SMTP->new($host,?
- ??????????????????????????????Hello=>'localhost',?
- ??????????????????????????????Timeout=>120,?
- ??????????????????????????????Debug=>1?
- ??????????????????????????????);?
- ?????#?modify?it?with?your?email?username?and?password?
- ?????$smtp->auth('your_email_username','your_email_password');?
- ?????$smtp->mail($mail_from);?
- ?????$smtp->to($mail_to);?
- ?????$smtp->data();?
- ?????$smtp->datasend("To:?$mail_ton");?
- ?????$smtp->datasend("From:?$mail_fromn");?
- ?????$smtp->datasend("Subject:?$subjectn");?
- ?????$smtp->datasend("n");?
- ?????$smtp->datasend("$contentnn");?
- ?????$smtp->dataend();?
- ?????$smtp->quit;?
- ?
- }?
- ?
- sub?printlog?{?
- ????my?$str?=?shift;?
- ????open?LOG,'>>','check_url_status.log'?or?die?"$!n";?
- ????print?LOG?"$str";?
- ????close?LOG;?
- }?
url.txt
code:
- http://www.abc.com?
- http://www.test.com?
- http://www.xyz.com?
- …………………………?
- …………………………?
- …………………………?
- http://www.def.com?
- http://www.123.com