While this works for the file. I am not getting anything written to the file.
#!/usr/bin/perl -w
use strict;
use IO::Socket;
use MIME::Lite;
use Time::Out qw(timeout);
$SIG{PIPE} = "IGNORE";
$| = 1;
my $nb_secs = 10;
my $buf = "";
my $file;
my $sock = new IO::Socket::INET (PeerAddr => '192.168.173.9',
PeerPort => 4002,
Proto => 'tcp',
Type => SOCK_STREAM,
);
die "cannot open socket" unless ($sock);
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(t
+ime);
my $hrmin = sprintf ("%02d%02d",$hour,$min);
my $ymd = sprintf("%04d%02d%02d%02d%02d%02d",$year+1900,$mon+1,$mday,$
+hour,$min,$sec);
my $filename = "/var/flexshare/shares/logs/$ymd.txt";
print $filename, "\n";
open $file, ">$filename" || die("Couldn't open $file");
while (1) {
$SIG{USR1} = sub {
close $file;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localti
+me(time);
my $hrmin = sprintf ("%02d%02d",$hour,$min);
my $ymd = sprintf("%04d%02d%02d%02d%02d%02d",$year+1900,$mon+1,$md
+ay,$hour,$min,$sec);
my $filename = "/var/flexshare/shares/logs/$ymd.txt";
print $filename, "\n";
open $file, ">$filename" || die("Couldn't open $file");
};
while (my $line = <$sock>) {
#Print current line to open $file.
print $file $line;
if ($line =~ m/^(ALARM: )/) {
timeout $nb_secs => sub {
my $count = 0;
until ($count == 5 ) #Read the next xx lines
{
$buf .= $sock->getline();
$sock->flush();
$count++;
}
};
if ($@){
my $msg = MIME::Lite->new(
.....
$SIG{INT} = sub {
die "\nKilling program.\n";
close $sock or die "close: $!";
};
}
}
sleep 10; # allow sometime to exit
close $file;
So what did I mess up?????
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.