Jue Ago 24, 2006 3:08 am
|
 |
agarcia
Perlero Nuevo

|
Registrado: 24 Ago 2006
Mensajes: 5
|
|
| ¿Cómo introduzco un prompt en Perl? |
|
|
Quiero crear un script que se lanze en un servidor, el cual se encargue de buscar un directorio en todas las unidades de disco que se llame serc luego allí se encargue de ejecutar unos ficheros. Pero mi principal duda es cómo ordenarle que busque. Actualmente tengo implementado esto, pero no me funciona:
| Código: |
$telnet = Net::Telnet->new
(
Timeout=>10, Prompt=>'/[A-Z]:\\\\.*>\s*$/i', Host=>'192.168.4.58'
); |
ALGUIEN ME PUEDE AYUDAR!!!!!!!!!!!!!!!!!!! |
|
|
|
Jue Ago 24, 2006 5:42 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
| Prueba a poner primero un prompt más sencillo, como por ejemplo: '/> $/'. ¿Te falla en esta línea o en la de login? |
|

Mar Sep 12, 2006 11:02 am
|
 |
agarcia
Perlero Nuevo

|
Registrado: 24 Ago 2006
Mensajes: 5
|
|
| Sigo con problemas de Perl |
|
|
El mensaje que me muestra de error exactamente es el siguiente:
timed-out waiting for command prompt at D:\Datos\Scripts\parada_Windows_2000.pl line 12.
Al final he modificado el script y he quedado lo siguiente simplemente para probar:
| Perl: | use Net:: Telnet;
$telnet = Net:: Telnet-> new
(
Timeout=> 10, Prompt=> '/[A-Z]:\\\\.*>\s*$/i', Host=> '192.168.1.2'
);
$telnet-> login('admin', 'xxxxxx');
@listing = $telnet-> cmd("dir");
print @listing;
$telnet-> close; |
Simplemente para ver si se conectaba a través de telnet y hacía un dir del directorio actual, pero no hay manera, el caso es que una conexion directa a traves del comando telnet 192.168.1.2 si me deja hacerlo. No se que falla. Si tienes idea de donde puede venir el problema te agradecería que me lo dijeras
Gracias por tu ayuda, |
|

Mar Sep 12, 2006 11:19 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
| Escribe aquí un volcado de una sesión con un telnet hecho a mano. |
|

Jue Sep 14, 2006 1:51 am
|
 |
agarcia
Perlero Nuevo

|
Registrado: 24 Ago 2006
Mensajes: 5
|
|
| problems telnet |
|
|
| explorer escribió: | | Escribe aquí un volcado de una sesión con un telnet hecho a mano. |
Microsoft (R) Windows (TM) Version 5.00 (Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server Build 5.00.99206.1
login: admin
password: ****
Y en la pantalla siguiente se muestra:
*==============================================
Welcome to Microsoft Telnet Server.
*==============================================
C:\>
Tengo los servicios de Telnet de las 2 máquinas levantados además como a la máquina que deseo acceder es desde un Windows 2003 a un Windows 2000, le he tenido que habilitar tambien el protocol NMS, creo que se llamaba.Y como podrás ver el acceso manual funciona perfectamente pero a la hora de lanzar el script, me sale el error que te comenté ayer.
GRACIAS |
|

Jue Sep 14, 2006 4:16 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
Me está pasando exactamente lo mismo con el acceso a un router ADSL. Al final, he metido en un bucle diez intentos de conexión con un espera de un segundo; y suele entrar al quinto o sexto intento.
Según el manual, se podría probar con este prompt: '/c:\\\\>$/i'.
Ojo, si después del '>' hay algún espacio en blanco, deberás ponerlo en la expresión regular. Puedes ponerlo como ' ' si sabes que es uno sólo (también como '\s') y si son más, como '\s*'.
Si no te funciona, prueba con expresiones regulares más cortas, como '/>\s*$/', por ejemplo. |
|
Jue Sep 14, 2006 4:34 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|

Jue Sep 14, 2006 4:47 am
|
 |
agarcia
Perlero Nuevo

|
Registrado: 24 Ago 2006
Mensajes: 5
|
|
|
|
|
Perdona por mi ignorancia, pero me podrías decir como puedo meter en un bucle lo que me has comentado partiendo del script que tengo hecho?????,
En cuanto a lo de la solucion de formateo me parece que es imposible porque es un servidor y no puedo hacer eso.
Lo que no entiendo es por que lanzando el mismo script de un Windows 2003 a un Windows 2003 si que funciona y cuando lo hago del Windows 2003 al Windows 2000 NOoOOOOOOOO!!!.
Gracias |
|
Jue Sep 14, 2006 5:26 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
| El problema no está en el bucle que se pudiera escribir para reintentar la conexión. Mira el segundo enlace que te he puesto y verás que el servidor telnet de windows devuelve caracteres de control. Ese es el problema. Y si no lo tienes en el 2003 es quizás porque Microsoft aprendió la lección... |
|
Jue Sep 14, 2006 5:47 am
|
 |
agarcia
Perlero Nuevo

|
Registrado: 24 Ago 2006
Mensajes: 5
|
|
|
|
|
[Pues nada, entonces tendré que probar otro sistema aunque no se todavía cual ,pero en fin, a ver que se me puede ocurrir, porque tambien lo estuve intentando con SSH, pero tampoco hubo manera, Muchas gracias de todos modos.
Un saludo. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|