Autor
|
Tema: script bat con ping (Leído 17,750 veces)
|
piratava
Desconectado
Mensajes: 5
|
Hola, Lo he intentado de varias formas y aun no puedo. Les cuento que tengo un servidor pptp en linux y a veces se desconecta solo y para resumir la conexion hay qye volver a marcar el login. Ese no es mi problema, lo que necesito que un script en vbs, bat o c que haga un ping constante a la ip del servidor y que si el ping falla X cantidad de veces ejecute un .bat. Ojala alguien me pueda ayudar. Dejo el script que hice en .bat para conectar al servidor por si a alguien le sirve @echo off
sleep 3 rasdial SERVIDOR /DISCONNECT sleep 3 rasdial SERVIDOR USUARIO CONTRASEÑA sleep 7 ROUTE delete x.x.x.x MASK x.x.x.x x.x.x.x sleep 5 ROUTE -p add x.x.x.x MASK x.x.x.x x.x.x.x sleep 10 NET USE UNIDAD: /DELETE /YES sleep 10 NET USE UNIDAD: "\\x.x.x.x\Archivos Server" CONTRASEÑA /USER:USUARIO@DOMINIO /PERSISTENT:no explorer UNIDAD:
|
|
« Última modificación: 5 Septiembre 2013, 22:02 pm por piratava »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.921
|
necesito que un script en vbs, bat o c que haga un ping constante a la ip del servidor y que si el ping falla X cantidad de veces ejecute un .bat.
:Ping Ping.exe " %IP%" || (Set /A Fails+=1 ) :OnError :: Hacer cosas...
Saludos...
|
|
|
En línea
|
|
|
|
piratava
Desconectado
Mensajes: 5
|
:Ping Ping.exe " %IP%" || (Set /A Fails+=1 ) :OnError :: Hacer cosas...
Saludos... Funciona bien el codigo gracias!, pero no me ejecuta el ":OnError", por ejemplo para probar le dije que llame a explorer pero no lo hace. @Echo OFF
Set "IP=10.0.0.254" Set /A MaxFails=3
:Ping Ping.exe "%IP%" || (Set /A Fails+=1) If %Fails% EQU %MaxFails% (Goto :OnError) Goto :Ping
:OnError explorer c: Pause&Exit [MOD] NO HAGAS DOBLE POST.Si funciona, disculpa!!! Entendi que el MaxFails es a los pings, entonces le puse 2 no pasaba anda, pero es al proceso completo de pings, es decir, los 4 pings erroneos. Gracias!!
|
|
« Última modificación: 6 Septiembre 2013, 00:03 am por EleKtro H@cker »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.921
|
Entendi que el MaxFails es a los pings, entonces le puse 2 no pasaba anda, pero es al proceso completo de pings, es decir, los 4 pings erroneos. Así es, Si quieres algo más preciso como lo que comentas entonces puedes usar un "FOR /F + FIND" para filtrar la salida del comando Ping.exe para contar los paquetes perdidos. Saludos
|
|
|
En línea
|
|
|
|
piratava
Desconectado
Mensajes: 5
|
Así es, Si quieres algo más preciso como lo que comentas entonces puedes usar un "FOR /F + FIND" para filtrar la salida del comando Ping.exe para contar los paquetes perdidos.
Saludos
No, asi esta bien, muchas gracias. Como puedo mejorar mi script de inicio de pptp? me puedes ayudar con eso? Gracias 
|
|
|
En línea
|
|
|
|
piratava
Desconectado
Mensajes: 5
|
Tengo el siguiente problema: Cuando no hay ping, me ejecuta el "ping.bat" sin problemas. Pero cuando hay ping igual se crea un loop Te cuento, tengo 2 bat, uno llamado "ping.bat" y el pptp llamado "cgallardo.bat" Entonces, cuando enciendo el equipo abro "cgallardo.bat" @echo off
sleep 3 rasdial SERVIDOR-SANTIAGO /DISCONNECT sleep 3 rasdial SERVIDOR-SANTIAGO user pass sleep 7 ROUTE delete 10.0.0.0 MASK 255.255.255.0 192.168.210.0 sleep 5 ROUTE -p add 10.0.0.0 MASK 255.255.255.0 192.168.210.0 sleep 20 NET USE Z: "\\10.0.0.254\Archivos Server" pass /USER:user@dominio /PERSISTENT:no ping.bat y conecta sin problemas. Y desde alli llamo a "ping.bat" entonces para que cuando falle vuelva a llamar a "cgallardo.bat" lo deje asi: @Echo OFF
Set "IP=10.0.0.254" Set /A MaxFails=1
:Ping Ping.exe "%IP%" || (Set /A Fails+=1) If %Fails% EQU %MaxFails% (Goto :OnError) Goto :Ping
:OnError cgallardo.bat el bat "ping.bat" ejecuta sin problemas, pero a pesar de tener ping vuelve a llamar a "cgallardo.bat" me corta el pptp y lo vuelve a marcar. Como puedo configurar el parametro FIND para que me lea un texto como "Tiempo de espera agotado para esta solicitud." que es error cuando no hay ping, si se puede configurar asi, seria ideal ya que si detecta ej: 4 ping erroneos llamaria a "cgallardo.bat" y no en otro momento, me puedes ayudar por favor?
|
|
« Última modificación: 6 Septiembre 2013, 00:52 am por piratava »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.921
|
No se si te he entendido bien pero en el script "ping.bat" debes restaurar el valor de la variable "Fails" a "0" después de llamar a "cgallardo.bat", de lo contrario el resto de pings siempre van a tomarse como fallidos por que el valor de la variable seguirá subiendo constántemente... Y bueno, sobre lo de filtrar la salida de Ping te cito una respuesta mía en otro post: Aquí tienes mi solución, es muy sencillo: Set "Interval=5" & REM Segundos :PingMe Echo [+] Haciendo Ping [ %Count%] ( ping "%URL%" | FINDSTR "perdidos.=.0$" ) || ( Echo %DATE% %TIME% >> " %LogFile%" ) Ping "LOCALHOST" -n " %Interval%" 1 >NUL | MORE
Output: [+] Haciendo Ping [1] Paquetes: enviados = 4, recibidos = 4, perdidos = 0
[+] Haciendo Ping [2] Paquetes: enviados = 4, recibidos = 4, perdidos = 0
[+] Haciendo Ping [3] Paquetes perdidos. Saludos! Combínalo con las variables "Fails" y "MaxFails" y ya lo tienes listo. Saludos
|
|
|
En línea
|
|
|
|
piratava
Desconectado
Mensajes: 5
|
Estimado, Trate de hacerlo de varias formas pero soy novato con esto. Me puedes volver a ayudar por favor? la idea es que detecte cuando no hay ping a una ip, y genere el script de marcado, y una vez que ya este marcado el pptp y vuelva el ping a la ip el proceso de monitoreo vuelva a fucionar. Gracias! 
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.921
|
Prácticamente te lo he dado todo hecho sin que tengas que hacer ningún esfuerzo mayor, solo tienes que colocar cada cosa en su sitio, lee un poco sobre el lenguaje para aprender lo básico, o espera la respuesta de algún otro compañero.
Saludos!
|
|
|
En línea
|
|
|
|
Jimbojones
Desconectado
Mensajes: 2
|
Buenos días. Estoy enfrascado con un bat. La idea seria, crear un programa que hiciese un ping continuo a la IP introducida por teclado. Los resultados del ping, se guardan en un txt, con la fecha y la hora de cada uno de ellos, y al detener el ping, se almacenan en el txt las estadisticas globales de los pings mientras el programa estuvo corriendo. Esta versión solo me ha planteado 3 pequeños problemas. 1º) Para modificar la IP del ping, tenía que modificarla en el codigo del programa 2º) Para modificar le nombre del txt en el que se guardaba la información tenia que modificar el nombre en el codigo del programa. 3º)Almacenaba la información en la memoria buffer, por lo que si tenia el programa corriendo durante 24 horas, al detenerlo, solo me presentaba las estadisticas globales de los pings de las 24 horas, pero, solo mostraba los ultimos pings. for /F "delims=" %%i in ('ping 10.105.253.254 -t' ) do call : format " %%i" :format echo %date% %time% %1 1 >> pinglog.txt :done
Agradeceria cualquier aporte. Un saludo,
|
|
« Última modificación: 11 Septiembre 2013, 12:25 pm por EleKtro H@cker »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
script bash (ubuntu): Parar un proceso sin salir del script (SOLUCIONADO)
Scripting
|
moikano→@
|
6
|
11,781
|
28 Octubre 2010, 15:48 pm
por moikano→@
|
|
|
Refused to execute a javascript script. Source code of script found within reque
Nivel Web
|
acoevil
|
2
|
4,815
|
7 Diciembre 2011, 13:17 pm
por acoevil
|
|
|
[BASH] Ayuda!! comando ping y ejecucion script dentro de un comando
Scripting
|
H4WK
|
1
|
5,383
|
1 Junio 2013, 11:18 am
por H4WK
|
|
|
Script batch para ping
« 1 2 »
Scripting
|
terrateck
|
14
|
22,089
|
20 Junio 2013, 01:04 am
por engel lex
|
|
|
codigo script para hacer ping en php
« 1 2 »
Scripting
|
condorito
|
15
|
25,083
|
2 Julio 2022, 14:55 pm
por Danielㅤ
|
|