none
Camputrar error de ping en txt RRS feed

  • Pregunta

  • Buenas,

      Necesito hacer un monitoreo de una conexión, para lo que estoy usando la siguiente sentencia: "while($true) {test-connection -count 999999  10.122.5.210 -delay 1 -Verbose | format-table @{n='TimeStamp';e={Get-Date}}, Address, ResponseTime}". Hasta aquí todo bien, lo que no me esta haciendo el script es guardar en el txt cuando hay un error de conexión, es decir, si hay perdidas de paquetes que esto me quede guardado en el txt.

    Si alguien tiene alguna idea agradecería su ayuda.


    Jose Miguel Salas C

    miércoles, 28 de enero de 2015 20:11

Respuestas

  • No sé si entiendo del todo bien lo que quieres hacer... pero bueno, espero que sea esto lo que buscas:

    • Ping (supongo que contínuo) a un servidor.
    • Si el ping no responde lo registras.

    En ese caso, creo que te podría valer esto:

    $Computer = "ToServer"
    while (1 -eq 1) #para que haga ping contínuo. Defínelo como necesites.
    	{ 
    	try 
    		{
    		$Ping = Test-Connection -ComputerName $Computer -Count 1 -ErrorAction SilentlyContinue | Select Address,IPV4Address,ResponseTime,StatusCode
    		$IP = $Ping.IPV4Address
    		$Time = $Ping.ResponseTime
    		$Status = $Ping.StatusCode
    		if ($Status -eq 0)
    			{
    			$Result = $Computer + ";" + $IP + ";" + $Time + ";" + $Status | Out-File c:\Temp\pingOK.log -append
    			}
    		else
    			{
    			$Date = Get-Date
    			$Result = $Computer + ";No response;" + $Date | Out-File c:\Temp\pingKO.log -append
    			}
    		}
    	catch
    		{
    		throw  $Error[0].Exception.Message
    		}
    	}

    Tal y como está te guardaría en el fichero c:\temp\pingOK.log las salidas correctas y en c:\temp\pingKO.log los que no responden.

    Lógicamente, si sólo quieres guardar el fallo con eliminar la exportación del Ok lo tendrías.

    Espero que te sirva.

    Un saludo.

    Diego.

    miércoles, 11 de febrero de 2015 15:42

Todas las respuestas

  • No sé si entiendo del todo bien lo que quieres hacer... pero bueno, espero que sea esto lo que buscas:

    • Ping (supongo que contínuo) a un servidor.
    • Si el ping no responde lo registras.

    En ese caso, creo que te podría valer esto:

    $Computer = "ToServer"
    while (1 -eq 1) #para que haga ping contínuo. Defínelo como necesites.
    	{ 
    	try 
    		{
    		$Ping = Test-Connection -ComputerName $Computer -Count 1 -ErrorAction SilentlyContinue | Select Address,IPV4Address,ResponseTime,StatusCode
    		$IP = $Ping.IPV4Address
    		$Time = $Ping.ResponseTime
    		$Status = $Ping.StatusCode
    		if ($Status -eq 0)
    			{
    			$Result = $Computer + ";" + $IP + ";" + $Time + ";" + $Status | Out-File c:\Temp\pingOK.log -append
    			}
    		else
    			{
    			$Date = Get-Date
    			$Result = $Computer + ";No response;" + $Date | Out-File c:\Temp\pingKO.log -append
    			}
    		}
    	catch
    		{
    		throw  $Error[0].Exception.Message
    		}
    	}

    Tal y como está te guardaría en el fichero c:\temp\pingOK.log las salidas correctas y en c:\temp\pingKO.log los que no responden.

    Lógicamente, si sólo quieres guardar el fallo con eliminar la exportación del Ok lo tendrías.

    Espero que te sirva.

    Un saludo.

    Diego.

    miércoles, 11 de febrero de 2015 15:42
  • No sé si entiendo del todo bien lo que quieres hacer... pero bueno, espero que sea esto lo que buscas:

    • Ping (supongo que contínuo) a un servidor.
    • Si el ping no responde lo registras.

    En ese caso, creo que te podría valer esto:

    $Computer = "ToServer"
    while (1 -eq 1) #para que haga ping contínuo. Defínelo como necesites.
    	{ 
    	try 
    		{
    		$Ping = Test-Connection -ComputerName $Computer -Count 1 -ErrorAction SilentlyContinue | Select Address,IPV4Address,ResponseTime,StatusCode
    		$IP = $Ping.IPV4Address
    		$Time = $Ping.ResponseTime
    		$Status = $Ping.StatusCode
    		if ($Status -eq 0)
    			{
    			$Result = $Computer + ";" + $IP + ";" + $Time + ";" + $Status | Out-File c:\Temp\pingOK.log -append
    			}
    		else
    			{
    			$Date = Get-Date
    			$Result = $Computer + ";No response;" + $Date | Out-File c:\Temp\pingKO.log -append
    			}
    		}
    	catch
    		{
    		throw  $Error[0].Exception.Message
    		}
    	}

    Tal y como está te guardaría en el fichero c:\temp\pingOK.log las salidas correctas y en c:\temp\pingKO.log los que no responden.

    Lógicamente, si sólo quieres guardar el fallo con eliminar la exportación del Ok lo tendrías.

    Espero que te sirva.

    Un saludo.

    Diego.

    Hola, muy buen tu script. Me podria ayudar con algo así?

    Estoy queriendo armar un Test-Connection, anidados si es que aplica esta definición

    Por ejemplo. Tengo que verificar si responde la coneccion un servidor en red.

    Bien este servidor podría ser que no responda porque switch, esta apagado. O bien el switch, está encendido pero no responde el router.

    Entonces lo que no estoy pudiendo hacer es Test-Connection al server, y si no responde Test-Connection al switch, si no responde hacer Test-Connection al router. 


    Saludos Jorge Argentina

    lunes, 24 de agosto de 2020 14:11