Forum Discussion
Stephen_C
Neophyte
2 years agoThanks. I managed to get the following together which seems to work. I want to use it to monitor some remote devices. Thanks for the assistance!
import com.santaba.agent.groovyapi.expect.Expect;
import com.santaba.agent.groovyapi.snmp.Snmp;
import com.santaba.agent.groovyapi.http.*;
import com.santaba.agent.groovyapi.jmx.*;
import org.xbill.DNS.*;
import com.jcraft.jsch.JSch;
import com.santaba.agent.util.Settings;
hostname = hostProps.get("system.hostname")
//hostname = "www.google.com"
mymtu = hostProps.get("custom.ping.mtu")?.toInteger() ?: 1472
pingargs = '-n 4 -f -l $mymtu'
timeout = 15000 // timeout in milliseconds
try {
def command_output = "ping ${hostname} ${pingargs}".execute().text
//command_output = command_output.toString()
//println command_output
packetsSent = (((command_output.findAll(~/(?<=Sent = )\d+/)).toString()).replaceAll(/\[(\d+)\]/, '$1')).toInteger()
packetsReceived = (((command_output.findAll(~/(?<=Received = )\d+/)).toString()).replaceAll(/\[(\d+)\]/, '$1')).toInteger()
packetsLost = (((command_output.findAll(~/(?<=Lost = )\d+/)).toString()).replaceAll(/\[(\d+)\]/, '$1')).toInteger()
roundtripMinimum = (((command_output.findAll(~/(?<=Minimum = )\d+/)).toString()).replaceAll(/\[(\d+)\]/, '$1')).toInteger()
roundtripMaximum = (((command_output.findAll(~/(?<=Maximum = )\d+/)).toString()).replaceAll(/\[(\d+)\]/, '$1')).toInteger()
roundtripAverage = (((command_output.findAll(~/(?<=Average = )\d+/)).toString()).replaceAll(/\[(\d+)\]/, '$1')).toInteger()
println 'packetsSent=' + packetsSent
println 'packetsReceived=' + packetsReceived
println 'packetsLost=' + packetsLost
println 'roundtripMinimum=' + roundtripMinimum
println 'roundtripMaximum=' + roundtripMaximum
println 'roundtripAverage=' + roundtripAverage
return 0
}
catch (Exception e) {
println "Unexpected Exception : " + e
return 1
}