Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: How to create a subroutine function to return epoch time from syslog file

by blindluke (Hermit)
on Feb 05, 2015 at 08:35 UTC ( [id://1115620]=note: print w/replies, xml ) Need Help??


in reply to How to create a subroutine function to return epoch time from syslog file

Please, use <code> </code> tags around your code.

It seems that the Parse::Syslog module does what you want and more. Take a look at the timestamp method.

- Luke

  • Comment on Re: How to create a subroutine function to return epoch time from syslog file
  • Download Code

Replies are listed 'Best First'.
Re^2: How to create a subroutine function to return epoch time from syslog file
by Anonymous Monk on Feb 05, 2015 at 14:26 UTC
    Thanks for the speedy response Luke. What I'm trying to accomplish is to write a function/subroutine, called eTime() which will return the epoch time which I will then use to compare the interval between an open and closed session. sol@ubuntu01 ~$ fgrep session /var/log/syslog | fgrep open | head -1 Jan 31 08:40:19 ubuntu01 sshd32346: pam_unix(sshd:session): session opened for user rocky by (uid=0) sol@ubuntu01 ~$ fgrep session /var/log/syslog | fgrep closed | head -1 Jan 31 08:52:42 ubuntu01 sshd32523: pam_unix(sshd:session): session closed for user rocky by (uid=0) Building on the code I have, I need to pass the parameters which include month, day, year, hour, min, and second back to the function. I'm new to Perl so my biggest challenge right now is to get the time from the syslog file into the function. Many thanks for the assistance. use Time::Local; %month = ( "Jan", 0, "Feb", 1, "Mar", 2, "Apr", 3, "May", 4, "Jun", 5, "Jul", 6, "Aug", 7, "Sep", 8, "Oct", 9, "Nov", 10, "Dec", 11 ); &eTime; $Interval = <closedSession - openSession> print "Interval = $Interval\n"; sub eTime { my ($x, $ss); # local variables my ($month, $day, $year, $hour, $min, $sec, $epoch); @syslogDate = split(/ /, $x); ($moty1, $day, $year) = split(/\//, $syslogDate[0]); # mm dd yyyy ($hour, $min, $sec) = split(/:/, $syslogDate1); # HH:MM:SS $moty2 = $month{$moty1}; $day = $day + 0; $hour = $hour + 0; $min = $min + 0; $sec = $sec + 0; $epoch = timelocal($sec, $min, $hour, $day, $moty2, $year); return $epoch; }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1115620]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (2)
As of 2025-12-09 08:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What's your view on AI coding assistants?





    Results (88 votes). Check out past polls.

    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.