Bueno, mi intención es ir recopilando y mostrando la utilidad de la línea de comandos y del scripting en general. He preferido empezar explicando comandos y utilizades antes de entrar con otras cosas pero bueno seguimos con los comandos a ver que tal.
PROCESOS.
Bueno, el tema de los procesos es realmente interesante y útil. Siempre es bueno conocer como poder ver procesos activos, como eliminar los que deseemos, etc. Para empezar voy enumerar algunas herramientas que existen hoy en día para la línea de comandos, algunas son propias del sistema operativo y otras pertenecen a support tools, resource kits, o herramientas de terceros como son las archiconocidas pstools.
Empezamos:
Visualizar/mostrar procesos.
1.- tlist-> support tools
2.- pulist --> Resource kit tools de windows 2000.
3.- pslist --> Pertenece a las pstools.
4.- tasklist -> Nativa en windowsxp.
Eliminar y/o MATAR procesos
1.- Taskkill -> Nativa en windowsxp
2.- pskill --> Pertenece a las pstools.
3.- kill -> support tools
Como podéis ver no son pocas, aunque algunas tienen ventajas sobre otras, al menos en la cantidad de información que nos facilitan. Como es habitual podéis utilizar redirecciones para volcar la información a un fichero y revisarlo o compararlo con otro resultado. El funcionamiento de estas herramientas es muy sencillo, aunque como siempre aconsejo el /? para ver la ayuda que ofrecen.
Bueno de momento eso es todo por hoy, en la próxima entrada entraré un poco en detalle con cada una de las herramientas que os he comentado.
Hasta entonces SALU2.
miércoles, 11 de abril de 2007
martes, 10 de abril de 2007
Lectura de un fichero y algo más....
Bueno, hasta ahora hemos realizado cosas sencillitas ahora vamos a hacer algo un poquito más complejo.
Lo que os propongo es lo siguiente. ¿qué haríais si os encontráseis con que quereis controlar cada X minutos si Y servidores o Routers o Pc's o lo que queráis están activos, o sea con conexión?
Bueno yo os propongo hacerlo con un simple cmd que lea el contenido de un fichero y ejecute o realize algo con dicho contenido.
Bueno, empezaremos con el contenido del fichero.
Inicio -- lista.txt <--- No copiar esta línea copiar a partir de aquí.
192.168.0.1|pc1
192.168.0.2|pc2
192.168.0.254|routeradsl
192.168.0.10|serverweb
192.168.0.3|pc_luisa
Fin lista.txt <--- No copiar esta línea.
Bien en el fichero tenemos las ips y las descripciones de los equipos a los que queremos controlar si están conectados, apagados, o sin red.
Bien en este ejemplo usaré un comando que utilizaré bastante que se llama FOR, como siempre para obtener la ayuda detallada de dicho comando escribiremos FOR /?.
También utilizaremos el comando IF muy útil y poco aprovechado pero bueno poco a poco lo irémos viendo.
Bueno pasemos a la chicha.
DoPing.cmd
---------- Copia a partir de esta línea -----------
if exist resultado.txt del resultado.txt
for /f "tokens=1,2 delims=|" %%p in (lista.txt) do (@ping %%p -n 2 | @find "TTL">nul || @echo %time% -[ %%p ] - [ %%q ] - [ no responde ] >>resultado.txt )
start notepad resultado.txt
--------- FIN DE DoPing.cmd -----------------------
1.- Como podemos ver, lo primero que hacemos es comprobar si existe el fichero resultado.txt y si existe lo eliminamos con el comando DEL.
2.- El comando For es algo más complejo, no quiero entrar demasiado en detalles, en principio lo que hace es definir que hay 2 valores por línea y que están separados por el símbolo "|", %%p es el valor 1 o sea token 1 y le decimos que lo tiene que coger del fichero lista.txt especificado arriba.
3.- Lo siguiente que hace es para cada 1 valor realiza un ping y busca en el resultado del ping el valor TTL.
4.- eL || significa que si el comando previo a fallado osea que el find no ha sido correcto ejecutará el echo y añadirá el parámetro hora (time) %%p = ip(token1) %%q(descripción - token2) y añadirá el resultado al fichero resultado.txt
Y por último lo que hace es que nos muestra el contenido del fichero en el notepad.
Bueno, esté miniscript es útil si deseamos por ejemplo crear una tarea programada cada X minutos y que nos guarde un registro. Para que esto funcione deberíamos quitar la primera y última línea y cada vez que se ejecute el script se irá añadiendo al fichero y luego nosotros con tranquilidad podemos examinarlo.
Bueno hay queda eso, si hay alguna duda u error........
Lo que os propongo es lo siguiente. ¿qué haríais si os encontráseis con que quereis controlar cada X minutos si Y servidores o Routers o Pc's o lo que queráis están activos, o sea con conexión?
Bueno yo os propongo hacerlo con un simple cmd que lea el contenido de un fichero y ejecute o realize algo con dicho contenido.
Bueno, empezaremos con el contenido del fichero.
Inicio -- lista.txt <--- No copiar esta línea copiar a partir de aquí.
192.168.0.1|pc1
192.168.0.2|pc2
192.168.0.254|routeradsl
192.168.0.10|serverweb
192.168.0.3|pc_luisa
Fin lista.txt <--- No copiar esta línea.
Bien en el fichero tenemos las ips y las descripciones de los equipos a los que queremos controlar si están conectados, apagados, o sin red.
Bien en este ejemplo usaré un comando que utilizaré bastante que se llama FOR, como siempre para obtener la ayuda detallada de dicho comando escribiremos FOR /?.
También utilizaremos el comando IF muy útil y poco aprovechado pero bueno poco a poco lo irémos viendo.
Bueno pasemos a la chicha.
DoPing.cmd
---------- Copia a partir de esta línea -----------
if exist resultado.txt del resultado.txt
for /f "tokens=1,2 delims=|" %%p in (lista.txt) do (@ping %%p -n 2 | @find "TTL">nul || @echo %time% -[ %%p ] - [ %%q ] - [ no responde ] >>resultado.txt )
start notepad resultado.txt
--------- FIN DE DoPing.cmd -----------------------
1.- Como podemos ver, lo primero que hacemos es comprobar si existe el fichero resultado.txt y si existe lo eliminamos con el comando DEL.
2.- El comando For es algo más complejo, no quiero entrar demasiado en detalles, en principio lo que hace es definir que hay 2 valores por línea y que están separados por el símbolo "|", %%p es el valor 1 o sea token 1 y le decimos que lo tiene que coger del fichero lista.txt especificado arriba.
3.- Lo siguiente que hace es para cada 1 valor realiza un ping y busca en el resultado del ping el valor TTL.
4.- eL || significa que si el comando previo a fallado osea que el find no ha sido correcto ejecutará el echo y añadirá el parámetro hora (time) %%p = ip(token1) %%q(descripción - token2) y añadirá el resultado al fichero resultado.txt
Y por último lo que hace es que nos muestra el contenido del fichero en el notepad.
Bueno, esté miniscript es útil si deseamos por ejemplo crear una tarea programada cada X minutos y que nos guarde un registro. Para que esto funcione deberíamos quitar la primera y última línea y cada vez que se ejecute el script se irá añadiendo al fichero y luego nosotros con tranquilidad podemos examinarlo.
Bueno hay queda eso, si hay alguna duda u error........
Suscribirse a:
Entradas (Atom)