Buenas a todos
Hoy os voy a traer un pequeño tutorial que a muchos os puede gustar.
Cuantos de vosotros habéis querido hacer una batería de pines en una LAN para realizar algún test de conectividad o algunas pruebas de conectividad para ver si perdemos conectividad con algún equipo de la red, ya sea local o Internet y acabáis aburridos de hacer pines equipo por equipo. Pues nada aquí os traigo un trabajo para vagos vagos :D.
Lo único que tenéis que hacer es incluir este código en un archivo Batch o también llamado archivo de procesamiento por lotes ( fichero " . Bat ") y ejecutarlo cuando necesitéis hacer la prueba o incluirlo en una tarea programada para que se ejecute cada X días a X hora o un día concreto a una hora concreta, ( esto también lo explicare después ).
El código básico es el siguiente:
@echo off cls if exist pruebaspines.txt del pruebaspines.txt -> Comprobación existencia fichero goto pruebaspines :pruebaspines Color 0E echo ******************************************************************************* echo * VERIFICACION PINES * echo * * echo ******************************************************************************* goto 1 :1 for /f %%i in ('date /t') do (set fecha=%%i) for /f %%i in ('time /t') do (set hora=%%i) ping 10.10.10.10 -n 1 if errorlevel 1 goto :mal echo %fecha%-%hora% **** equipo responde **** >> pruebaspines.txt goto 2 :mal echo %fecha%-%hora% **** equipo no responde **** >> pruebaspines.txt goto 2 :2 echo ********* pruebas terminadas ********* >> pruebaspines.txt exit |
Bueno ahora voy a explicar un poco en que consiste y los pasos que sigue.
Con este script para batch podremos probar si tenemos conectividad con un equipo en cuestión o una dirección concreta guardando un reporte del resultado en un documento llamado "" pruebapines.txt "". El script primeramente comprobara si existe un documento llamado pruebaspines.txt y si existe lo eliminara y luego comenzara con el trabajo que le hemos programado, lanzara un único ping a una dirección concreta que le indicaremos nosotros , en este caso hemos puesto la 10.10.10.10 ( podéis poner la cantidad de pines que queráis, solo tenéis que cambiar el valor que hay después de " -n ", pero para una prueba de conectividad con un único ping es mas que suficiente ), una vez lanzado el ping si el ping es correcto nos dará una respuesta con " equipo responde " incluyendo la hora a la que se hizo la prueba, pero si el ping falla nos indicara que el " equipo no responde " y una vez acabadas las pruebas nos dará una respuesta, pruebas terminadas.
Todas las pruebas incluyen una linea para guardar los resultados en un documento llamado pruebaspines.txt, si os preguntáis por que hay que pone " >> " es muy simple, si queremos que la información se vaya incluyendo en lineas nuevas sobre el mismo documento deberemos de poner " >> " pero si ponemos solo un símbolo " > " las lineas se pisaran una sobre otra, por lo que no tendremos un histórico de los resultados de las pruebas.
Los campos de ...
for /f %%i in ('date /t') do (set fecha=%%i)
for /f %%i in ('time /t') do (set hora=%%i)
son campos que necesitaremos si queremos que la linea echo nos devuelva la fecha y hora de cuando se escribió la linea que le indicamos, por lo tanto si queréis que salga la fecha en la linea , esta linea es necesaria.
-------------------------------------------------------- O -------------------------------------------------------
Pues esto seria la prueba básica es cierto que podremos complementarlo con mas cosas para hacer un documento mucho mas curioso y profesional.
Por ejemplo si queremos que las pruebas tengan un formato compatible con excel, solo tendremos que modificar los "echo " para que el texto incluya puntos y comas " ; " para generar separadores o incluso pasar el txt a csv para que no tengamos ni que exportar el fichero simplemente ejecutar el " CSV " listo, también podréis añadirle una fecha al fichero para que este quede registrado con un histórico, por si queréis tener un registro de las pruebas que habéis hecho y tener un seguimiento.
Bueno pues ahora voy a poneros otro ejemplo en el que voy a incluir todo eso y a demás una breve explicación para generar una tarea programada para nuestro fichero batch
@echo off cls D: cd D:\pruebas if exist pruebaspines.txt del pruebaspines.txt goto pruebaspines :pruebaspines Color 0E echo ******************************************************************************* echo * VERIFICACION PINES * echo * * echo ******************************************************************************* echo FECHA;ESTADO;EQUIPO;COMENTARIO >> pruebaspines.txt goto 1 :1 for /f %%i in ('date /t') do (set fecha=%%i) for /f %%i in ('time /t') do (set hora=%%i) ping 10.10.10.10 -n 1 if errorlevel 1 goto :mal echo %fecha%-%hora%;ping correcto;Servidor; >> pruebaspines.txt goto 2 :mal echo %fecha%-%hora%;fallo ping;Servidor;Contactar con el responsable >> pruebaspines.txt goto 2 :2 for /f %%i in ('date /t') do (set fecha=%%i) for /f %%i in ('time /t') do (set hora=%%i) ping 10.10.10.1 -n 1 if errorlevel 1 goto :mal echo %fecha%-%hora%;ping correcto;puerta de enlace; >> pruebaspines.txt goto 3 :mal echo %fecha%-%hora%;fallo respuesta;puerta de enlace;Contactar con el responsable >> pruebaspines.txt goto 3 :3 copy /Y pruebaspines.txt pruebaspines.csv REN "pruebaspines.csv" "pruebaspines %Date:/= % %Time::=.%.csv" echo %fecha%-%hora% **** testeo de conectividad finalizado **** exit |
Bueno en este ejemplo hemos incluido cosas nuevas y una segunda prueba. Todos los campos en naranja son campos que deberéis de tener en cuenta a la hora de programar vuestro fichero personalizado, nombres de fichero, resultados de las pruebas, nombres de las columnas, direcciones IP , etc.. etc..
Bueno voy al grano, este fichero tiene varias peculiaridades nuevas, la primera que encontramos es que ahora le indicamos el directorio donde se encuentra el script:
D:
cd D:\pruebas
Esto lo hemos hecho por que a la hora de usar el programador de tareas, aun que le indiquemos donde esta el fichero a ejecutar el programador de tareas ejecutara el fichero como si estuviera en el directorio C:\Windows\System y no es lo que queremos. Para ver como programar una tarea podéis ir a este enlace Programador tareas windows.
La segunda linea que tenemos es la que hará de cabecera para que nuestro fichero pueda ser utilizado en Excel.
echo FECHA;ESTADO;EQUIPO;COMENTARIO >> pruebaspines.txt
Como una de las condiciones de Excel a la hora de importar datos a la hoja de calculo y que quede todo en sus respectivas celdas es la condición de punto y coma " ; " le hemos añadido un separador por punto y coma, es cierto que excel también admite, espacios,puntos,comas o un campo personalizado, pero para hacerlo mas simple añadiremos " ; " que es compatible también con los CSV. Por eso hemos modificado también los resultados echo de nuestras pruebas, (echo %fecha%-%hora%;ping correcto;Servidor; >> pruebaspines.txt ).
Bueno ahora nos encontramos con el final de nuestro fichero de pruebas, donde vemos mas lineas que no venían en el primer ejemplo:
copy /Y pruebaspines.txt pruebaspines.csv
REN "pruebaspines.csv" "pruebaspines %Date:/= % %Time::=.%.csv"
En estas dos lineas vemos que realizamos una copia de nuestro fichero TXT a un CSV ( copy /Y pruebaspines.txt pruebaspines.csv ) y a continuación renombra el fichero CSV que hemos creado añadiéndole la fecha y hora actual de la creación de dicho fichero, dejando así el fichero preparado para poder realizar un futuro seguimiento de las pruebas que realizamos.
Bueno espero que os haya gustado este tutorial y espero que os sea de utilidad.
No hay comentarios :
Publicar un comentario