Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^3: adding wtmp script into logwatch

by Sinistral (Monsignor)
on Nov 30, 2011 at 18:10 UTC ( [id://940913]=note: print w/replies, xml ) Need Help??


in reply to Re^2: adding wtmp script into logwatch
in thread adding wtmp script into logwatch

That's because you can't copy and paste the entire thing as a .pl file and expect Perl to understand. Here's what you need to have as the contents of the .pl file:

#!/bin/perl @type = ( "Empty", "Run Lvl", "Boot", "New Time", "Old Time", "Init" +, "Login", "Normal", "Term", "Account" ); $recs = ""; while (<>) { $r ecs .= $_; } foreach ( split( /(.{384})/s, $recs ) ) { next if length($_) == 0 +; my ( $type, $pid, $line, $inittab, $user, $host, $t1, $t2, $t3, $t +4, $t5 ) = $_ =~ /(.{4})(.{4})(.{32})(.{4})(.{32})(.{256})(.{4})(.{4})(.{4} +)(. +{4})(.{4})/s; if ( defined $line && $line =~ /\w/ ) { $line =~ s/\ x00+//g; $host =~ s/\x00+//g; $user =~ s/\x00+//g; printf( "%s %-8s %-12s +%10s %-45s \n", scalar( gmtime( unpack( "I4", $t3 ) ) ), $type[ unpack( " I4", $type ) ], $user, $line, $host ); } } printf "\n"

The next step after saving your .pl file is to make it executable using the chmod command. A chmod u+x,g+x,o+x wtmp.pl will do it. Then you can run the script like so:

./wtmp.pl

The above assumes that wtmp.pl is in your current directory.

Replies are listed 'Best First'.
Re^4: adding wtmp script into logwatch
by hedkandi (Initiate) on Dec 01, 2011 at 02:01 UTC
    Hi Sinistral Thank you for making the script mean something now! I renamed my file, changed the permission to 755, changed the file extension to .pl and when i did run the script I am still gettting syntax errors:
    syntax error at /usr/share/logwatch/scripts/services/my-report line 3 +, near "+," syntax error at /usr/share/logwatch/scripts/services/my-report line 1 +1, near "+;" Nested quantifiers in regex; marked by <-- HERE in m/(.{4})(.{4})(.{3 +2})(.{4})(.{32})(.{256})(.{4})(.{4})(.{4})(. +{ <-- HERE 4})(.{4})/ at /usr/share/logwatch/scripts/services/my-rep +ort line 14.
Re^4: adding wtmp script into logwatch
by hedkandi (Initiate) on Dec 01, 2011 at 02:10 UTC
    sorry my bad. I removed the plus signs, now the script hangs when i run it...
Re^4: adding wtmp script into logwatch
by hedkandi (Initiate) on Dec 01, 2011 at 02:27 UTC
    Hi Sinistral Sorry, Im asking you alot of questions here. So anyways I corrected the "+" signs and it looks like this now:
    #!/usr/bin/perl @type = ( "Empty", "Run Lvl", "Boot", "New Time", "Old Time", "Init", "Login", "Normal", "Term", "Account" ); $recs = ""; while (<>) { $recs .= $_; } foreach ( split( /(.{384})/s, $recs ) ) { next if length($_) == 0 ; my ( $type, $pid, $line, $inittab, $user, $host, $t1, $t2, $t3, $t +4, $t5 ) = $_ =~ /(.{4})(.{4})(.{32})(.{4})(.{32})(.{256})(.{4})(.{4})(.{4} +)(.{4})(.{4})/s; if ( defined $line && $line =~ /\w/ ) { $line =~ s/\ x00+//g; $host =~ s/\x00+//g; $user =~ s/\x00+//g; printf( "%s %-8s %-12s %10s %-45s \n", scalar( gmtime( unpack( "I4", $t3 ) ) ), $type[ unpack( " I4", $type ) ], $user, $line, $host ); } } printf "\n" < /var/log/wtmp
    I added the wtmp directory so the script would call the logs from wtmp...but I am wrong again because the new error I see is this:
    --------------------- WTMP logs Begin ------------------------ Warning: Use of "log" without parentheses is ambiguous at /usr/share/ +logwatch/scripts/services/my-report line 32. syntax error at /usr/share/logwatch/scripts/services/my-report line 3 +2, near "/var/log" Search pattern not terminated at /usr/share/logwatch/scripts/services +/my-report line 32. ---------------------- WTMP logs End -------------------------
    Thank you again for correcting the script, i'm really really grateful for that!
Re^4: adding wtmp script into logwatch
by hedkandi (Initiate) on Dec 01, 2011 at 02:55 UTC
    Helloooo again Sinistral!! OMG I finally got it to work!!! When I ran logwatch it gave me this error saying something like "logfile not defined" because as you can see I hadn't define a log file to call YET into the script (that's why the script was hanging!) Not very bright u see!! Soooo, anyways what I did was to go to my /etc/logwatch/conf/logfiles directory and added a wtmp.conf file and added this line into it:
    my-mnag0:/etc/logwatch/conf/logfiles # ls -lrt total 4 -rwxrwxr-x 1 root sysadm 61 Dec 1 15:11 wtmp.conf my-mnag0:/etc/logwatch/conf/logfiles # more wtmp.conf #Define log file group for wtmp log Logfile = /var/log/wtmp
    so then i rerun logwatch again and lo and behold!!! out came the wtmp logs!!!!
    Wed Nov 30 14:57:35 2011 Normal my9849 pts/0 191.255 + Wed Nov 30 14:58:11 2011 Normal root pts/1 191.255. + Wed Nov 30 15:04:17 2011 Term pts/0 + Wed Nov 30 15:04:25 2011 Normal my9849 pts/0 191.255. + Wed Nov 30 15:22:33 2011 Term pts/0 + Wed Nov 30 15:23:51 2011 Term pts/1 + Thu Dec 1 06:09:22 2011 Normal my9849 pts/0 191.255. + ---------------------- WTMP logs End -------------------------
    OMG Im soo happy!!! This thing has been going on for 2 weeks and I was about to give up until you came along n responded to my distress call!! Thank you soo very much!!! *big hug and kissess

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2024-04-23 09:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found