19 votos

Guardar la salida de Ping en un archivo de texto

A menudo tengo que hacer ping a servidores para verificar el estado de conectividad. ¿Hay alguna forma de guardar los resultados del ping (output) en un archivo de texto para poder guardar los resultados del ping de todo el día en un archivo de texto.

Estoy usando Windows XP SP3.

Ejemplo de ping:

ping 192.168.1.1 -t 

(usando el ping de Windows)

o

ping 192.168.1.1

(usando cygwin)

18voto

DMA57361 Puntos 14505

Utilice la redirección, por ejemplo:

ping 192.168.1.1 -t > filename.txt

Esto redirigirá toda la salida (estándar) del programa a filename.txt, el cual será creado si no existe y sobrescrito si lo hace.

Puede utilizar >> en lugar de > para redirigir la salida a un archivo y añadir los resultados al final del archivo, en lugar de sobrescribir (con agradecimientos a @Jane T por el recordatorio).

Tenga en cuenta que no recibirá la salida normal en pantalla si hace esto.

Actualización en respuesta al comentario

Para retrasar entre pings y registrar la hora de cada uno, puede crear un script.

Aquí hay un archivo por lotes de Windows que he creado rápidamente. Imprime la hora, realiza pings a Google, luego espera 3 segundos antes de repetirse. No soy un experto en archivos por lotes, así que si alguien ve algún problema, por favor señálelo. Y probablemente esta no sea la "mejor" manera de lograr lo que desea; eso podría ser motivo de una pregunta separada en realidad.

@ECHO OFF

:LOOPSTART

time /T
ping www.google.com -n 4
sleep -m 3000

GOTO LOOPSTART

Guarde esto en un archivo .bat en algún lugar, edite el objetivo de ping y el tiempo de retraso según sea necesario, luego ejecute el .bat utilizando redirección para enviar la salida de todo el proceso a un archivo. Es posible que tenga que reemplazar el comando sleep -m 3000 con timeout /T 3 dependiendo de su versión de Windows.

Tenga en cuenta que este archivo por lotes nunca termina, pero puede ser terminado por Ctrl + C y luego Y si se ejecuta desde cmd. (Debe presionar Y porque pregunta si desea detener el archivo por lotes, ¡aunque no pueda ver la pregunta porque ha redirigido la salida!)

0 votos

¡Gracias! Funciona bien, ¿puedo mostrar la hora actual junto con cada ping, o puedo cambiar la duración entre dos pings?

2 votos

Tendrías que hacer un poco de scripting para esto, ping no podrá hacerlo por ti.

0 votos

Azz me ganó por poco - para eso tendrías que cambiar ping en sí mismo para que produzca algo diferente, o hacer un esfuerzo de script interesante para - por ejemplo - producir una marca de tiempo, hacer ping, esperar 10 segundos, repetir.

3voto

Cichy Puntos 859

Si estás usando el símbolo de comando simplemente redirígelo a un archivo de texto usando este formato

ping 192.168.1.1 > ping.txt

Eso es todo.

2voto

d1k_is Puntos 128

Puedes usar:

> ping 192.168.1.1 -t > ping-results

1 votos

Usar > como tu indicador de shell PS1 es realmente confuso cuando el comando también incluye un > para redirección.

2voto

HackerBoss Puntos 111

Escribí el script que hace ping a google.com cada 5 segundos y registra los resultados con la hora actual. Aquí puedes encontrar la salida en las variables "commandLineStr" (con índices)

@echo off

:LOOPSTART

echo %FECHA:~0% %HORA:~0,8% >> Pingtest.log

SETLOCAL ENABLEDELAYEDEXPANSION
SET scriptCount=1
FOR /F "tokens=* USEBACKQ" %%F IN (`ping google.com -n 1`) DO (
  SET commandLineStr!scriptCount!=%%F
  SET /a scriptCount=!scriptCount!+1
)
@ECHO %commandLineStr1% >> PingTest.log
@ECHO %commandLineStr2% >> PingTest.log
ENDLOCAL

timeout 5 > nul

GOTO LOOPSTART

1voto

Desperate Dan Puntos 11

:: PIng ISP cada 1 segundo y escribe la fecha, hora y resultado en un archivo de texto

@ECHO OFF
:LOOPSTART
date /T >>Pingtest.log
time /T >>Pingtest.log
ping 8.8.8.8 -n 1 >>PingTest.log
sleep -m 1000
GOTO LOOPSTART

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X