#!/usr/bin/perl use strict; use warnings; #use 5.010; use Time::Piece; #use Time::Seconds; my $format = '%b %e %T'; my $time = Time::Piece->new; #my $yesterday = $time - ONE_DAY; my $yesterday = $time - 86400; print $time->strftime('%b %e %T'),"\n"; #print $time->strftime('%b %e'),"\n"; print "yesterday\t", $yesterday->strftime('%b %e %T'),"\n"; print "today\t", $time->strftime('%b %e %T'),"\n"; print $yesterday,"\n"; print $time,"\n"; #print "yesterday\t", $yesterday,"\n"; #print "today\t", $time,"\n"; ##my $start = Time::Piece->strptime('Mar 27', $format); my $start = Time::Piece->strptime('$yesterday', $format); #this DOES NOT work #my $start = Time::Piece->strptime('Feb 1 10:30:00', $format); ##my $end = Time::Piece->strptime('Mar 28', $format); my $end = Time::Piece->strptime('$time', $format); #this DOES NOT work #my $end = Time::Piece->strptime('Feb 2 10:30:00', $format); print "yesterday\t", $yesterday,"\n"; print "today\t", $time,"\n"; open(FILE, "/var/log/maillog") or die "Couldn't open maillog: $!; aborting"; while () { my ($timestamp) = /(^\w+\s+\d+\s+\d\d:\d\d:\d\d)/; my $t = Time::Piece->strptime($timestamp, $format); print if $t >= $start && $t <= $end; } close(FILE);