Sponsored Content
Full Discussion: Ping scripting
Top Forums Shell Programming and Scripting Ping scripting Post 303024357 by RudiC on Sunday 7th of October 2018 04:38:00 AM
Old 10-07-2018
Welcome to the forum.


Quote:
Originally Posted by Jeffm0342
This is my first posting here, I haven't found exactly what I'm looking for anywhere else so I'm hoping you all can help. I have a portion of script here that needs to ping two servers, then return whether they are up or down (somehow), and then echo that information. Here is what I have so far. It does echo up/down, but the information doesn't change regardless of the ping success.
Not quite true. It does change: 2 up, 0 down, if the last ping fails, 1 up, 1 down, if it succeeds.



There seems to be one basic misunderstanding: the $? variable represents the exit code of the last command executed; the before last's is overwritten. So your first ping's result is lost. So, you need to evaluate it after each ping, e.g. with another if construct. Doable, but tedious and ineffective.


How about a different approach? Collect the respective exit codes, and do some math afterwards? Like


Code:
ping -c1 -W1 192.168.0.1 > /dev/null; X1=$?
ping -c1 -W1 192.168.0.1 > /dev/null; X2=$?
echo "Servers up: $((2-X1-X2)) Servers down: $((X1+X2))"

The -q is redundant if you redirect output to /dev/null. I introduced the -W timeout option to reduce execution / waiting time.
This User Gave Thanks to RudiC For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

scripting guru's pls help me with scripting on AIX

can someone pls help me with the script for a files coming from one system to a particular directory and i want to write a script to move those files to another directory on different system by renaming the files... pls someone help me on this... thanking in anticipation.... (1 Reply)
Discussion started by: thatiprashant
1 Replies

2. UNIX for Advanced & Expert Users

can't ping IP

hi , i have problem that i can't ping machine , machine is in running state but i can't access or ping it .. but when i restarts that machine it works fine. can anybody have an idea abou this problem .. thanks (1 Reply)
Discussion started by: tahir23
1 Replies

3. Shell Programming and Scripting

Call Shell scripting from Perl Scripting.

Hi How to call a shell scripting through a Perl scripting? Actually I need some value from Shell scripting and passes in the Perl scripting. So how can i do this? (2 Replies)
Discussion started by: anupdas
2 Replies

4. What is on Your Mind?

Shell scripting vs Perl scripting

Hi all, I would like to start developping some good scripting skills. Do you think it would be best to start with shell scripting or Perl? I already got a fundation, really basics, in perl. but I am wondering what would be best to be good at first. Can you please help me determine which one to... (14 Replies)
Discussion started by: Pouchie1
14 Replies

5. What is on Your Mind?

Shell Scripting vs Perl scripting

Gents, I have been working in a Solaris/Unix environment for about 9 months. I took some linux classses online before getting the job. But, I am not very good at scripting. I want to learn how to script. Do you think that I should start with Shell scripting or Perl? I wanted to continue with... (2 Replies)
Discussion started by: Pouchie1
2 Replies

6. Web Development

Perl scripting or shell scripting?

i am going to study any one of the scripting languages mentioned above(shell 0r perl scripting) . Which is having more scope for a fresher? (1 Reply)
Discussion started by: Anna Hussie
1 Replies

7. Shell Programming and Scripting

Animation Ping on Solaris Like Cisco Ping

Hi, I develop simple animation ping script on Solaris Platform. It is like Cisco ping. Examples and source code are below. bash-3.00$ gokcell 152.155.180.8 30 Sending 30 Ping Packets to 152.155.180.8 !!!!!!!!!!!!!.!!!!!!!!!!!!!!!. % 93.33 success... % 6.66 packet loss...... (1 Reply)
Discussion started by: gokcell
1 Replies

8. Shell Programming and Scripting

How to get reason for ping failure using perls Net::Ping->new("icmp");?

Hi I am using perl to ping a list of nodes - with script below : $p = Net::Ping->new("icmp"); if ($p->ping($host,1)){ print "$host is alive.\n"; } else { print "$host is unreacheable.\n"; } $p->close();... (4 Replies)
Discussion started by: tavanagh
4 Replies

9. Shell Programming and Scripting

Scripting with arguments for ping command

This is the script I already have but I have problems with two arguments the first argument -t , I want to count 200 by the last digit of the IP address for example when I run the script ./ping.sh -t 17, the output would be192.168.0.217 is upThe second arguments --up won't work. Could anybody... (1 Reply)
Discussion started by: Roggy
1 Replies

10. Programming

Ping test sends mail when ping fails

help with bash script! im am working on this script to make sure my server will stay online, so i made this script.. HOSTS="192.168.138.155" COUNT=4 pingtest(){ for myhost in "$@" do ping -c "$COUNT" "$myhost" &&return 1 done return 0 } if pingtest $HOSTS #100% failed... (4 Replies)
Discussion started by: mort3924
4 Replies
AnyEvent::XMPP::Ext::Ping(3pm)				User Contributed Perl Documentation			    AnyEvent::XMPP::Ext::Ping(3pm)

NAME
AnyEvent::XMPP::Ext::Ping - Implementation of XMPP Ping XEP-0199 SYNOPSIS
use AnyEvent::XMPP::Ext::Ping; my $con = AnyEvent::XMPP::IM::Connection->new (...); $con->add_extension (my $ping = AnyEvent::XMPP::Ext::Ping->new); # this enables auto-timeout of a connection if it didn't answer # within 120 seconds to a ping with a reply $ping->enable_timeout ($con, 120); my $cl = AnyEvent::XMPP::Client->new (...); $cl->add_extension (my $ping = AnyEvent::XMPP::Ext::Ping->new); # this enables auto-timeout of newly created connections $ping->auto_timeout(120); $ping->ping ($con, 'ping_dest@server.tld', sub { my ($time, $error) = @_; if ($error) { # we got an error } # $time is a float (seconds) of the rtt if you got Time::HiRes }); DESCRIPTION
This extension implements XEP-0199: XMPP Ping. It allows you to define a automatic ping timeouter that will disconnect dead connections (which didn't reply to a ping after N seconds). See also the documentation of the "enable_timeout" method below. It also allows you to send pings to any XMPP entity you like and will measure the time it took if you got Time::HiRes. METHODS
new (%args) Creates a new ping handle. auto_timeout ($timeout) This method enables automatic connection timeout of new connections. It calls "enable_timeout" (see below) for every new connection that was connected and emitted a "stream_ready" event. This is useful if you want connections that have this extension automatically timeouted. In particular this is useful with modules like AnyEvent::XMPP::Client (see also SYNOPSIS above). enable_timeout ($con, $timeout) This enables a periodical ping on the connection $con. $timeout must be the seconds that the ping intervals last. If the server which is connected via $con didn't respond within $timeout seconds the connection $con will be disconnected. Please note that there already is a basic timeout mechanism for dead TCP connections in AnyEvent::XMPP::Connection, see also the "whitespace_ping_interval" configuration variable for a connection there. It then will depend on TCP timeouts to disconnect the connection. Use "enable_timeout" and "auto_timeout" only if you really feel like you need an explicit timeout for your connections. ping ($con, $dest, $cb, $timeout) This method sends a ping request to $dest via the AnyEvent::XMPP::Connection in $con. If $dest is undefined the ping will be sent to the connected server. $cb will be called when either the ping timeouts, an error occurs or the ping result was received. $timeout is an optional timeout for the ping request, if $timeout is not given the default IQ timeout for the connection is the relevant timeout. The first argument to $cb will be the seconds of the round trip time for that request (If you have Time::HiRes). If you don't have Time::HiRes installed the first argument will be undef. The second argument to $cb will be either undef if no error occured or a AnyEvent::XMPP::Error::IQ error object. ignore_pings ($bool) This method is mostly for testing, it tells this extension to ignore all ping requests and will prevent any response from being sent. AUTHOR
Robin Redeker, "<elmex at ta-sa.org>", JID: "<elmex at jabber.org>" COPYRIGHT &; LICENSE Copyright 2007, 2008 Robin Redeker, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-01-23 AnyEvent::XMPP::Ext::Ping(3pm)
All times are GMT -4. The time now is 10:39 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy