返回首页


{S0}简介
得到通知,如果您的网站关闭或缓慢。它的作用
这个简单的Perl脚本设计上运行的时间表。如果你在Windows上,你可以使用Windows任务调度,如果你在Linux上,你可以作为一个cron作业运行调度。该脚本会检查一个网站,实际上是"抢"的默认页面,然后记录这需要多久。然后,您可以收到一封电子邮件,如果页面是关闭,或者如果响应时间是大于你设置。它是如何工作
该脚本有3个文件。URLS.txt - 这个文件包含的所有URL(网站),你想检查。每个URL一行。这使得很容易地更新和改变,而无需挖成Perl脚本的列表。SMTP_Settings.txt - 这个文件包含该脚本应该使用发送的通知,以及谁把它发送到SMTP设置。同样,这些设置位于在一个文本文件中的脚本,使事情变得更容易改变。responser.pl - 检查网站,并试图抢默认的文件的任务的脚本。你需要设置最小响应时间,是可以接受的范围内脚本本身。请记住,如果你正在运行的脚本,从连接速度很慢,你也可能打你的响应时间限制,由此而引发的电子邮件。
由脚本创建的其他文件:
该脚本将创建一个错误文件,其中任何报告的错误被写入。这是方便进行故障排除,该文件可以随时删除。
该脚本将创建一个每天的日志文件,它的运行时间。每天的日志文件将追加,所以每一天,你就会有一个发生了什么记录。
的自述文件的完整脚本可以免费从下载。从日志文件的示例输出:******************************************* *********** -------------------------------------------------- ------------------------------|时间:23时26分31秒||主机状态响应| -------------------------------------------------- ------------------------------| http://www.yahoo.com/响应1秒| http://www.hotmail.com/响应1秒| http://www.ebay.com/响应1秒| http://www.example.com/响应0秒|| http://www.not/一个真正的site.com错误/一个|&# 160;-------------------------------------------------- ------------------------------|时间:23时30分十七秒||主机状态响应| -------------------------------------------------- ------------------------------| http://www.yahoo.com/响应0秒|| http://www.hotmail.com/响应0秒|| http://www.ebay.com/响应1秒 | http://www.example.com/响应0秒|| http://www.not/一个真正的site.com错误/一个| -------------------------------------------------- ------------------------------|时间:23时31分26秒||主机状态响应| -------------------------------------------------- ------------------------------| http://www.yahoo.com/响应0秒|| http://www.hotmail.com/响应1秒| http://www.ebay.com/响应0秒|| http://www.example.com/响应0秒|| http://www.not/一个真正的site.com错误N / A |#/ USR / BIN / perl的使用警告;使用严格的;使用领带::文件;使用Net::SMTP;使用LWP::的UserAgent;################################################## ################程序设置#我error_log中="Responser_errors.txt";#文件来存储程序错误我的$输入档案='urls.txt";#从程序将读取网页地址我smtp_file ='SMTP_Settings.txt";#SMTP设置文件我response_limit美元= 12;##秒积极diggit - > Sendmail的;  0; #0 - >将不能发送邮件我send_mail = 1;#$ send_mail = 1; - > SMTP选项为ON, &# 160; #$ send_mail = 0; - > SMTP选项为OFF################################################## #################设置的完#不要编辑娄,如果你不明白它。################################################## ################死"的文件input_file是不存在\ N"除非(E $输入档案);死"SMTP已打开,但文件$ smtp_file是不存在的\ N"除非(E $ smtp_file);我的本地时间=本地时间;@我们的错误;我(美元一天,美元一个月,$日期,小时美元,为一年)=分裂/ \ S /标LocalTime设置;我output_file ='报告'$日期.'.'.$月.'.'.$一年。"TXT';我($ smtp_host,$收件人,reverse_path,all_addr)=();,"领带领带@:文件'all_addr $输入档案或错误("斜面开放输入档案读取地址");(- E $ output_file){ 开放(">> $ output_file") 或错误("斜面打开存在的文件追加output_file");}否则{ 开放("> $ output_file") 或错误("斜面打开新文件$ output_file书面方式");}我@ smtp_settings;如果($ ^ O =〜/ WIN / I){ 领带@ smtp_settings,"领带::文件',smtp_file美元,  0;recsep =>"\ 012" 或错误("斜面开放smtp_file读SMTP设置");}否则{领带@ smtp_settings,"领带::文件',smtp_file美元,autochomp => '0' 或错误("斜面开放smtp_file读SMTP设置");}(@ smtp_settings){ 的Chomp; 未来如果/^#/; #未来如果/^$/; (/ ^(\ W)\ S = \ S"(\ S)'/){ 美元smtp_host = 2美元(1美元EQ"SMTPHost');  60;美元收件人= $ 2(1美元EQ"收件人"); $ reverse_path = $ 2(1美元EQ"反'); }}打印出的"\ n".('-' × 84)。 "\ N"打印出"|",""× 30",时间:美元小时",""X 40"| \ N";打印出× 10 "|",'","主","'× 37'状态',''× 7,  60; "响应| \ N";打印出"".('-' × 84)。 "\ N";(0 .. $#all_addr){ 印章美元all_addr [$ _]($ all_addr [$ _] =〜/ \ S /美元); 未来如果($ all_addr [$ _] EQ""); 如果($ all_addr [$ _] =〜/ ^ HTTP:\ / \ / \ \ \ W {2,4} $ /){ #地址以http://开始,未来一些字符串 #完成点和2到4个字母 check_url($ all_addr [$_]);#调用子程序check_url() }否则{ 我out_format = sprintf的"|%- 50.50s%%- 10S - 20S | \ N",  60; 美元all_addr [$_],"错","N / A"; printf的输出out_format美元; printf的美元out_format; 推@个错误,"$ all_addr [$ _]是错误的地址。"; }}我ERR =加入"\ 015 \ 012",@个错误;我err_num美元=标量@个错误;#如何匹配错误的网站有send_mail = 0,除非美元err_num;解开@ all_addr或错误("无法关闭文件为输入档案");(元send_mail) 我的SMTP =净:SMTP - >新($ smtp_host & #160; 调试=> 1, &# 160; 超时=> 20,   ; 您好=>"$ smtp_host") 或错误("斜面连接到$ smtp_host");#开始比较邮件我味精=邮件("$ reverse_path") &# 160;或错误("无法指定一个反向路径");#如果一切正常 美元SMTP ->(收件人) 或错误("指定收件人失败");#将 SMTP ->数据([味精])  0; 或错误("发送消息失败");#发送邮件 SMTP ->退出或错误("无法退出");#以您}否则{ 打印"发送邮件是关\ n",如果美元err_num#如果你不想接收邮件关闭了或错误("无法关闭文件$ output_file");打印的"\ nProcess FINISH \ N";分check_url {#子程序检查给定的URL 我的目标= $ _ [0];  0;我UA = LWP::的UserAgent ->新; UA ->代理("$ 0/0.1"UA ->代理。); 我REQ = HTTP:请求(GET =>"目标");  60; REQ ->头("接受"=>"文本/ html");#接受HTML页 #发送请求 &# 160; 我开始=时间;#开始计时 我RES = $ UA请求(REQ); #检查结果  0; ($ RES -> is_success){ &# 160; #成功....所有的网页内容已收到  60; 我的时间=时间;#定时器  0;美元out_format; 时间=($ - $开始);#定时器结果 (response_limit $(response_limit status_line美元) 或错误("无法推动下来的错误"); 打印出$ out_format;#写入文件 打印$ out_format;#打印到控制台 }}分错误{#子程序在错误日志打印 我的$ ERROR_MSG =转变; 开放的错误,">> $ error_log中" 或死"无法打开日志文件$ error_log中:$ \ N"; 打印错误"$ LocalTime设置\:$ ERROR_MSG:$ \ N"; 关闭ERR或死亡"不能关闭日志文件$ error_log中:$ \ N";}

回答

评论会员:mohankz 时间:2011/12/02
嗨,
脚本是用于管理网站的真正有用的。但我要为我们定制。

我新的Perl,刚开始这方面的工作。
我需要创建一个Perl脚本,它发送一个特定的错误消息appeans访问一个网站时notificaton电子邮件。

的是,该网站是正确加载整个页面的内容,但有时可能会出错。我已经发出通知,如果访问的URL时出现此特定错误信息。能否请您建议或一些参考/ S等出路吗?

在预期的感谢。

的问候,
MohanZ
评论会员:游客 时间:2011/12/02
sankarmca:您好你的脚本显示了一个"错误的URL"的错误讯息,而附加在URLquerysting价值。告诉我,我应该如何验证在你的脚本的URL桑卡尔
sonny2
评论会员:游客 时间:2011/12/02
喜这个监视器脚本不电子邮件我需要有一个密码和SMTP用户其安全离开你的邮件服务器开放无密码至少有没有办法设置此使用localhostsendmail或qmail的吗?桑尼感谢
dmoses
评论会员:游客 时间:2011/12/02
嗨,我喜欢你的项目,简单而有效的。情侣的想法:一)可能加入"使用时间:高分辨率QW(时间);"更换为时间的函数下降。由于许多网站负荷1-3秒,也许更高的分辨率会是好的。如果你这样做,我会直接HTTP请求后的第2次调用。我总是喜欢用类似这样的1定时器),时间2)最小的运算的要求3)获取时间。"if"语句不采取任何真正的时间长度,但其漂亮的,要尽可能准确...为什么不b)你的项目启发了我,创建自己的。而不是一个日志文件,我只是插入了一天的时间,响应时间到SQL数据库。然后我用另一页来查询数据库和图它。虽然这需要一个数据库和制图软件,有免费的。这是很好的趋势有一个可视化表示。同时把数据库中的数据,允许所有种处理,并运行的统计数据。例如什么是平均每天/周/月,最长等待的是什么,什么是最高的5%的平均水平,等等。欢呼声,很好的工作!
vander25
评论会员:游客 时间:2011/12/02
我倾向于同意dmoses。的措​​施,它的响应时间是过于粒状是任何真正的价值。另外,我会建议您检查清单,每个周期不超过10倍,该脚本运行,而不是一个单一的检查。这将是为您提供具有更大的熵,从中得出一个真正messue网站性能。在一个请求时存在的条件,可能不存在,所以请求之间的时间,你可以更准确地判断的表现。
darthzep
评论会员:游客 时间:2011/12/02
有趣的想法,但肯定...如果延迟UR链接到净,而不是UR服务器呢?如何才能给我发电子邮件,如果其真正下降?是需要加以解决的问题?正如我所说的好主意芹苴imgsrc=http://www.orcode.com/upimg/2011_12_02_04_22_36_1.gif"有没有勺子"imgsrc=http://www.orcode.com/upimg/2011_12_02_04_22_36_0.gif