#!/usr/bin/perl -w use DBI; use LWP::Simple; use HTTP::Size; use Time::HiRes qw(gettimeofday tv_interval); use Getopt::Std; ####commandline config my (%options); getopts("w:u:p:h", \%options); if ($options{h}) { print <<'eof'; -w webpage: Webpage to fetch -u username: Username for mysql -p password: Password for mysql -h: This help file eof exit; } ####config my ($db_insert_time) = qq{INSERT web_load (date, url, load_secs, size, users) VALUES(now(),?,?,?,?)}; #sql insert my ($url) = $options{w} || 'http://www.perlmonks.org/index.pl?node_id=131'; #default webpage (perlmonks frontpage) my ($db_user_name) = $options{u} || ''; #default mysql username my ($db_password) = $options{p} || ''; #defualt mysql password my ($db_database) = 'DBI:mysql:website'; #default mysql database ####connect to db my ($DBH) = DBI->connect ($db_database, $db_user_name, $db_password, { RaiseError => 1 }); ####record start time, get frontpage, and calculate elapsed time my ($start_secs); $start_secs = [gettimeofday]; my ($content) = get($url); die ("Couldn't GET $url\n") unless defined $content; my ($load_secs) = tv_interval ($start_secs); ####extract users from $content and do some error checking (only for perlmonks) my ($users) = $content =~ /\((\d+?)\)
prepare($db_insert_time); $STH->execute($url, load_secs, $size, $users); ####database finish $STH->finish(); $DBH->disconnect();