加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl 获取监控数据(续)

发布时间:2020-12-16 00:31:24 所属栏目:大数据 来源:网络整理
导读:上次的脚本只是将监控的数据展示在终端上,这次增加了一个功能:数据展示在终端的同时,存入到数据库中 code: #!/usr/bin/perl?-w? ? use?strict;? use?utf8;? use?LWP::Simple;? use?DBI;? ? my?$ dsn ?=? 'DBI:mysql:database=monitor;host=localhost;port

上次的脚本只是将监控的数据展示在终端上,这次增加了一个功能:数据展示在终端的同时,存入到数据库中

code:

 
 
  1. #!/usr/bin/perl?-w?
  2. ?
  3. use?strict;?
  4. use?utf8;?
  5. use?LWP::Simple;?
  6. use?DBI;?
  7. ?
  8. my?$dsn?=?'DBI:mysql:database=monitor;host=localhost;port=3306';?
  9. my?$dbh?=?DBI->connect($dsn,'root','test',{PrintError=>0,RaiseError=>1})?
  10. ????????????????????????or?die?"Can't?connect?to?mysql"?.?DBI->errstr;?
  11. ?
  12. my?$table?=?qq/CREATE?TABLE?IF?NOT?EXISTS?monitor?(?
  13. ???????????????room?char(20)?not?null,?
  14. ???????????????in_bytes?varchar(100)?not?null,?
  15. ???????????????out_bytes?varchar(100)?not?null,?
  16. ???????????????date?timestamp?not?null?
  17. ???????????????)?
  18. ??????????????/;?
  19. ?
  20. my?$sth?=?$dbh->prepare($table);?
  21. ???$sth->execute();?
  22. ???$sth->finish();?
  23. ?
  24. while?(1)?{?
  25. ???????my?$url?=?shift?||?"http://xxx.xxx.xxx.xxx";?
  26. ???????my?$content?=?get?$url;?
  27. ???????my?@url?=?split?/n/,$content;?
  28. ???????my?(?$i,$str?)?=?(?0,@url?);?
  29. ???????print?scalar?localtime,"n";?
  30. ?
  31. ???????while?(?$i?<?scalar?@$str?)?{?
  32. ?
  33. ?????????????if?(?@$str[$i++]?=~?/杭州机房1|杭州机房2|上海机房1|上海机房2/?)?{?
  34. ?????????????????binmode?STDOUT,'encoding(utf8)';?
  35. ?????????????????my?$room?=?$&;?
  36. ?????????????????print?STDOUT?"$&n";?
  37. ?????????????????$i?+=?16;?
  38. ?????????????????my?($in)?=?@$str[$i++]?=~?/(?:.*)>(S*s*S*).*</td>/;?
  39. ?????????????????printf?'%s',"tCurrent?In:?$1t";?
  40. ?????????????????$i?+=?5;?
  41. ?????????????????my?($out)?=?@$str[$i++]?=~?/(?:.*)>(S*s*S*).*</td>/;?
  42. ?????????????????printf?'%s',"Current?Out:?$1nn";?
  43. ?????????????????my?($sec,$min,$hour,$day,$month,$year)?=?(localtime(time))[0..5];?
  44. ?????????????????$month++;$year+=1900;?
  45. ?????????????????my?$date?=?sprintf?"%04d-%02d-%02d?%d:%d:%d",$year,$sec;?
  46. ?
  47. ?????????????????my?$data?=?qq/INSERT?INTO?monitor?VALUES?
  48. ??????????????????????????????("$room","$in","$out","$date")/;?
  49. ????????????????????$sth?=?$dbh->do($data);?
  50. ?????????????}?
  51. ?
  52. ???????}?
  53. ?
  54. print?'-'?x?70,"n";?
  55. sleep?900;?
  56. ?
  57. }?
  58. ?
  59. $dbh->disconnect();?

代码有些改动,主要是之前的一些写法不太好。

数据库中的图

 
 
  1. +--------------------+-------------+------------+---------------------+?
  2. |?room???????????????|?in_bytes????|?out_bytes??|?date????????????????|?
  3. +--------------------+-------------+------------+---------------------+?
  4. |?xxxx?????? ?|?85.9?Mb/s???|?99.5?Mb/s??|?2011-11-04?10:29:49?|?
  5. |?xxxx?????? ?|?14.1?Mb/s???|?80.7?Mb/s??|?2011-11-04?10:29:49?|?
  6. |?xxxx????? ?|?190.3?Mb/s??|?332.6?Mb/s?|?2011-11-04?10:29:49?|?
  7. |?xxxx?????? |?8968.4?kb/s?|?119.9?Mb/s?|?2011-11-04?10:29:49?|?
  8. |?xxxx??????? |?384.0?b/s???|?576.0?b/s??|?2011-11-04?10:29:49?|?
  9. +--------------------+-------------+------------+---------------------+?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读