here is simple perl script i wanted for my net connection ... just to check if default gateway is pingable or not if not write in log file but problem is that i can not write in file i can print on STDOUT but not in file ...why so ??
same thing was there when i was tying to write on sockets across the servers and on client side i was reading on port and trying to write to file but that didnt work either ... so just curious to know why i am not able to write to file ...
Code:
#!/usr/bin/perl -w
use strict;
use Net::Ping ;
my $config_file = "PingDetails.xml" ; # ignore this this was config file ..not used
my $host = "122.122.122.122" ; # just random IP address which will always fail
my $TimeOut = "25" ; # Time to wait after each successful ping in sec
my $FailOut = "5" ; # time to wait after each unsuccessful ping in sec
my $LogFile = "Pingreport.txt" ; # defined but not used
sub main {
## commented config file section as XML::Simple was giving some error
#&ReadConfig("$config_file") ;
&PingResults ;
}
sub ReadConfig($)
{
my $_file = $_[0] ;
my $xml = XMLin($_file) ;
$host = $xml->{Host} ;
$TimeOut = $xml->{TimeDuration} ;
$FailOut = $xml->{FailTimeOut} ;
$LogFile = $xml->{LogFile} ;
}
sub PingResults()
{
my $TO = "" ;
print "******\n" ;
print "Going To PING [$host] server after every [".($TimeOut+5)."] sec\n" ;
print "if server fails to respond will ping server every [".( $FailOut+5)."] sec\n" ;
print "put all logs in [$LogFile]\n" ;
print "******\n" ;
print "CNTL-C to Abort ...\n" ;
print "Here ....\n" ;
open (LOGFILE,">ping.log") or die "can not open file $LogFile : $!\n" ;
print "Ping.log not found \n" if ( ! -e "ping.log" ) ;
printf LOGFILE "%25s %16s %20s\n","TIME(yyyymmdd_hh:mi:ss)","HOST","STATUS" ;
while ()
{
$TO = "" ;
my $p = Net::Ping->new() ;
if ( $p->ping($host) )
{
# This means host is reachable
$TO = $TimeOut ;
print STDOUT "$host - reachable\n" ;
} else
{
# This means host is not reachable
$TO = $FailOut ;
my $stat = "".timestamp()." : $host : Not reachable" ;
&WriteLog("$stat") ;
print STDOUT "$stat\n" ;
}
sleep ($TO)
}
close LOGFILE ;
}
sub timestamp()
{
my ( $sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime ;
$year += 1900 ;
$mon += 1 ;
my $timeStamp = sprintf "%04d%02d%02d_%02d:%02d:%02d",
$year, $mon, $mday, $hour, $min, $sec ;
return $timeStamp ;
}
# this sub routine i though might be because of while loop its not printing in # file so created new sub routine
sub WriteLog($)
{
print "in write log\n" ;
my $_msg = $_[0] ;
print LOGFILE "$_msg\n" ;
}
main () ;
Hi:
I am currently working on a program which requires direct its ouput to a file here is an example
./proram arg_1 arg_2
when program ends all output will be arg_2 file
Is that possible I am not a bad programmer, However I am stuck there.
Can anyone give a hint?
Thanks
SW (1 Reply)
Ahhhrrrggg I'm having a brain fart...
I want to take the output of a command and redirect it to a file...
This works....
$ man cp | cat >> copy_help
but this doesn't
keytool -help |cat >> keytool_help
It just produces... these lines...
more keytool_help
] ...
... (11 Replies)
Hi all!!
is possible to assign the output of some command to filename, i.e.
grep_output.txt
Otherwise, I want to open a new file which name is inside another, how can I do it?
Thanks a lot! (7 Replies)
Hi All,
I want to redirect only the file names to a new file from the ls -ltr directroy. how Can i do it.
my ls -ltr output will be as below.
-rwxr-xr-x 1 118 103 28295 Jul 26 2006 event.podl
-rwxr-xr-x 1 118 103 28295 Jul 26 2006 xyz.podl
I want my new file... (6 Replies)
Hi everyone. This is a bit of a perl/linux mixed question. I am trying to redirect STDOUT of chsh by using the following line of perl code.
system ("chsh -s /sbin/nologin $testing 1>/dev/null");
This should redirect STDOUT to /dev/null but it won't do that for some odd reason. Any ideas or... (6 Replies)
Hi Guys,
Please help me.. it is urgent. I am writing a perl script to capture command output and redirect it to a logfile.At the same i want to check the return code of the command and log it if the command is not succesful in my logfile.. Here is my code, it is working but system command inside... (2 Replies)
Hi,
I want to know how to redirect the output of topas -P to a file in a readable format. I tried doing it by using
topas -P > topas.txt but the output is not properly aligned and when I opened it using vi it ahd some characters.
Please help me out in this.
Thanks (1 Reply)
Below script perfectly works, giving below mail output. BUT, I want to make the script mail only if there are any D-Defined/T-Transition/B-Broken State WPARs and also to copy the output generated during monitoring to a temporary log file, which gets cleaned up every week. Need suggestions.
... (4 Replies)
Hi Guys,
I want to redirect the output of 3 scripts to a file and then mail the output of those three scripts.
I used below but it is not working:
OFILE=/home/home1/report1
echo "report1 details" > $OFILE
=/home/home1/1.sh > $OFILE
echo... (7 Replies)
Hi,
I am using cygwin.
Below is my script that reads all ip ports for iplist.txt and telnets to it.
(
file="iplist.txt"
while read line
do
echo $line
echo $(telnet $line)
done <"$file"
) > output2.txt
~
while the output2.txt gets the first echo but does not show the second... (2 Replies)
Discussion started by: mohtashims
2 Replies
LEARN ABOUT DEBIAN
sa-check_spamd
SA-CHECK_SPAMD.RAW(1) User Contributed Perl Documentation SA-CHECK_SPAMD.RAW(1)NAME
sa-check_spamd - spamd monitoring script for use with Nagios, etc.
SYNOPSIS
sa-check_spamd [options]
Options:
-c secs, --critical=secs Critical ping response threshold
-h, -?, --help Print usage message
-H hostname, --hostname=hostname Hostname of spamd service to ping
-p port, --port=port Port of spamd service to ping
--socketpath=path Connect to given UNIX domain socket
-t secs, --timeout=secs Max time to wait for a ping response
-v, --verbose Verbose debug output
-V, --version Output version info
-w secs, --warning=secs Warning ping response threshold
DESCRIPTION
The purpose of this program is to provide a tool to monitor the status of "spamd" server processes. spamd is the daemonized version of the
spamassassin executable, both provided in the SpamAssassin distribution.
This program is designed for use, as a plugin, with the Nagios service monitoring software available from http://nagios.org. It might be
compatible with other service monitoring packages. It is also useful as a command line utility or as a component of a custom shell script.
OPTIONS
Options of the long form can be shortened as long as the remain unambiguous (i.e. --host can be used instead of --hostname).
-c secs, --critical=secs
Critical ping response threshold in seconds. If a spamd ping response takes longer than the value specified (in seconds) the program
will exit with a value of 2 to indicate the critical status.
This value must be at least as long as the value specified for warning and less than the value specified for timeout.
-h, -?, --help
Prints this usage message and exits.
-H hostname, --hostname=hostname
The hostname, or IP address, of the spamd service to ping. By default the hostname localhost is used. If --socketpath is set this
value will be ignored.
-p port, --port=port
The port of the spamd service to ping. By default port 783 (the spamd default port number) is used. If --socketpath is set this value
will be ignored.
--socketpath=path
Connect to given UNIX domain socket. Use instead of a hostname and TCP port. When set, any hostname and TCP port specified will be
ignored.
-t secs, --timeout=secs
The maximum time to wait for a ping response. Once exceeded the program will exit with a value of 2 to indicate the critical status.
The default timeout value is 45 seconds. The timeout must be no less than 1 second.
This value must be greater than the values specified for both the critical and warning values.
-v, --verbose
Display verbose debug output on STDOUT.
-V, --version
Display version info on STDOUT.
-w secs, --warning=secs
Warning ping response threshold in seconds. If a spamd ping response takes longer than the value specified (in seconds), and does not
exceed the critical threshold value, the program will exit with a value of 1 to indicate the warning staus.
This value must be no longer than the value specified for critical and less than the value specified for timeout.
EXIT CODES
The program will indicate the status of the spamd process being monitored by exiting with one of these values:
0 OK: A spamd ping response was received within all threshold times.
1 WARNING: A spamd ping response exceeded the warning threshold but not the critical threshold.
2 CRITICAL: A spamd ping response exceeded either the critical threshold or the timeout value.
3 UNKNOWN: An error, probably caused by a missing dependency or an invalid configuration parameter being supplied, occurred in the
sa-check_spamd program.
SEE ALSO spamc(1)spamd(1)spamassassin(1)PREREQUISITES
"Mail::SpamAssassin" version 3.1.1 or higher (3.1.6 or higher recommended)
AUTHOR
Daryl C. W. O'Shea, DOS Technologies <spamassassin@dostech.ca>
LICENSE
sa-check_spamd is distributed under the Apache License, Version 2.0, as described in the file "LICENSE" included with the Apache
SpamAssassin distribution and available at http://www.apache.org/licenses/LICENSE-2.0
perl v5.14.2 2014-02-14 SA-CHECK_SPAMD.RAW(1)