Fellow monks, I wrote a small inefficient perl script that checks to see if the time has changed on the /var/log/httpd/access_log file. If the file time is the same it prints a period. Once the file is "touch"ed by anything and the time changes, the script prints an "x". Eventually, I want to move to a specific response instead of an "x". The file uses 12% of cpu process because of its while loop nature. Is there a better way to do this?
#!/usr/bin/perl
print "Testing to see if file changes.\n";
$listing = `ls -al access_log`;
@fields = split /" "/,$listing;
foreach (@fields) {
if (/[0-9][0-9]:[0-9][0-9]/) {
$status = $&;
print "Status is :",$status,"\n"; }
else {
print "Didn't find anything.\n";
}
}
@fields = split /:/, $status;
$hours = @fields[0];
$minutes = @fields[1];
print "hours :",$hours,"\n";
print "minutes :",$minutes,"\n";
$hours2 = $hours;
$minutes2 = $minutes;
@fields = ();
while (1) {
while ($hours == $hours2 && $minutes == $minutes2) {
$listing = `ls -al access_log`;
@fields = split /" "/,$listing;
foreach (@fields) {
if (/[0-9][0-9]:[0-9][0-9]/) {
$status = $&;
}
else {
# print "Didn't find anything suckker.\n";
}
}
@fields = split/:/,$status;
$hours = @fields[0];
$minutes=@fields[1];
@fields= ();
print "."; # meaning the time is the still the same
}
$hours2 = $hours;
$minutes2 = $minutes;
print "x"; # meaning the time has changed; file touched
}
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.