elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  script para deteccion y conexion telnet automatica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: script para deteccion y conexion telnet automatica  (Leído 7,429 veces)
stoker

Desconectado Desconectado

Mensajes: 108



Ver Perfil
script para deteccion y conexion telnet automatica
« en: 24 Julio 2007, 12:03 pm »

Hola,

hace un tiempo que estoy con linux pero mis conocimientos de bash scripting son muy limitados

Tengo una maquina que controla el peso de las piezas que van pasando y cuando acaba le puedes decir que te imprima la estadística de las pesadas realizadas. Estas estadísticas te las envía via puerto serie a un adaptador ethernet del cual si estas conectado via telnet recibes las estadísticas. Si no estas conectado se pierden.

Me gustaria hacer un script que detectase cuando la maquina se conecta a la red (no lo esta siempre) y conectase a ella a la espera de datos. Una vez la maquina se desconectase cerrar el telnet y volver a controlar si la maquina se conecta

tengo hecho esto pero creo que los tiros van por otro lado

Código:
#!/bin/bash
#hacemos un par de pings
if ping -c2 192.168.1.42 > /dev/null 2>&1
then
# si responde conectamos via telnet y guardamos los datos recibidos en un fichero
telnet 192.168.1.42 > /home/user1/`date +%d-%m-%y_%H:%M`.txt
else
# si no responde matamos cualquier proceso telnet que este en marcha
killall telnet > /dev/null 2>&1

# esperamos 5 seg
sleep 5
fi
# iniciamos otra instancia del script y salimos de este
/home/user1/script.sh &


el problema es que no se como decirle que compruebe que esta conectado el telnet antes de hacerlo

agradecería si alguien me da un poco de luz al tema porque estoy convencido de que no voy por buen camino

Saludos


En línea


Asus eeepc 901 Linux - Kubuntu 8.10 + Wifiway 1.0 Final para netbooks persistent en una SD
sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: script para deteccion y conexion telnet automatica
« Respuesta #1 en: 25 Julio 2007, 20:16 pm »

pues, enumera los procesos en ejecución :-/ si alguno es "telnet", pues.. ya estas usandolo :P

Saludos!!


En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Colaborador
***
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: script para deteccion y conexion telnet automatica
« Respuesta #2 en: 26 Julio 2007, 09:04 am »

Hola,

hace un tiempo que estoy con linux pero mis conocimientos de bash scripting son muy limitados

Tengo una maquina que controla el peso de las piezas que van pasando y cuando acaba le puedes decir que te imprima la estadística de las pesadas realizadas. Estas estadísticas te las envía via puerto serie a un adaptador ethernet del cual si estas conectado via telnet recibes las estadísticas. Si no estas conectado se pierden.

Me gustaria hacer un script que detectase cuando la maquina se conecta a la red (no lo esta siempre) y conectase a ella a la espera de datos. Una vez la maquina se desconectase cerrar el telnet y volver a controlar si la maquina se conecta

tengo hecho esto pero creo que los tiros van por otro lado

Código:
#!/bin/bash
#hacemos un par de pings
if ping -c2 192.168.1.42 > /dev/null 2>&1
then
# si responde conectamos via telnet y guardamos los datos recibidos en un fichero
telnet 192.168.1.42 > /home/user1/`date +%d-%m-%y_%H:%M`.txt
else
# si no responde matamos cualquier proceso telnet que este en marcha
killall telnet > /dev/null 2>&1

# esperamos 5 seg
sleep 5
fi
# iniciamos otra instancia del script y salimos de este
/home/user1/script.sh &


el problema es que no se como decirle que compruebe que esta conectado el telnet antes de hacerlo

agradecería si alguien me da un poco de luz al tema porque estoy convencido de que no voy por buen camino

Saludos

Ese mismo .sh metelo pero a un cron. Te pego una guia:

Citar
Esta vez se trata de: ¿Cómo automatizar tareas en nuestro Linux con cron? En muchas ocasiones habreis necesitado realizar alguna tarea de forma automática un día concreto, o al principio de cada mes, o a una hora determinada y o bien habeis hecho scripts "chapuzas" o lo habeis dejado de hacer por no saber que existe cron, una potente herramienta que permite hacer todo esto, en Linux o en Unix.
Pues bien, vamos a explicaros cómo introducir tareas y programarlas en cron...(sigue)

Digamos que el cron se compone básicamente de dos "partes" el daemon y el fichero de configuración.
El daemon se llama crond y es el encargado de leer el fichero de configuración /etc/crontab.
Lo hace cada 60 segundos, en busca de cambios en dicho fichero e incorporar así tareas al sistema.
Nosotros no vamos a entrar en el deamon, ya que bastará que lo marqueis para que se ejecute al iniciar vuestro sistema, esto lo podeis hacer con la herramienta que traiga vuestra distribución sino, siempre podeis recurrir al modo texto con:chkconfig.

El fichero donde se añaden tareas es,como antes he escrito, /etc/crontab que podremos editar con nuestro editor favorito, como bien sabeis yo mismo publiqué un manual sobre la utilización del editor vi, así que podeis usar ese mismo :).
Bien, una vez editado dicho fichero encontraremos esto:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


El primer campo, como bien veis, es el entorno donde se ejecutarán las órdenes, podeis dejarlo así por defecto, a menos que useis otra shell.
El segundo campo está claro, es el valor de la variable PATH, si las ordenes que ejecutará la tarea no se encuentran en dicho PATH, no teneis más que añadirlo.
El tercero, manda los outputs del cron al root, o a quien queramos.Si queremos que no se envie nada sólo debemos dejar la variable así: MAILTO="".
Los /etc/cron.hourly, daily...son fichero que usa cron para su gestión interna y los lanza cada día.

Bien, ahora queremos agregar una tarea a nuestro sistema, ¿cómo se hace?.
Debemos saber cómo funcionan los campos del /etc/crontab.
El primer campo son los minutos.
El segundo campo son las horas.
El tercer campo es el día.
El cuarto es el día de la semana.
El quinto es la orden a ejecutar.
Es decir, para el crontab el fichero es así:
minute hour day month dayofweek command
Hay que destacar que los minutos deben ser enteros de entre 0-59.
Las horas, enteros de 0-23.
Días, 1-31. (Para meses que los tengan, claro.)
Meses, 1-12, también se pueden usar nombres cortos, (en inglés) jan, feb...(lo desaconsejo, aconsejo usar números).
Días de la semana, se usan enteros 1-7 (al igual que en los meses, se puede usar el nombre corto, pero tambien lo desaconsejo, en favor de los números.).
Y por último la orden, por ejemplo puede ser: ls -h > /home/manssson/ls.txt.
Con esto ya deberíamos ser capaces de crear y hacer funcionar cualquier tarea, pero cron tiene alguna más utilidades que conviene saber.
Por ejemplo, si ponemos un asterisco (*) en algún campo, por ejemplo el mes, esto hará que se ejecute la orden todos los meses, y luego respetará los demás valores, tales como el día o la hora.
Si queremos indicar un rango de enteros, lo haremos con un guión (-).
Si queremos indicar enteros separados, se harán con comas (,), por ejemplo: 1, 2, 3.
Podemos concretar o excluir valores usan la barra (/), es decir, si queremos que una orden se ejecute durante los 0-59 minutos de una hora menos en el minuto 15, pues lo marcaremos haciendo:0-59/15.
También podemos hacer que una orden que se ejecute en un determinado minuto, haciendo:*/25. Esto hará que nuestra tarea se ejecute siempre en el minuto 25.
El uso de la barra (/) y el asterisco (*) puede emplearse en todos los campos. Si queremos que una tearea no sea ejecutada sólo debemos comentar esa linea al principio con la "almohadilla" (#): #30 18 8 * * root rm -f /var/cache/apt/archives/*.rpm.

Con todo esto ya podremos incorporar tareas a nuestro sistema de forma automática. Como dije al principio de este documento, solo debemos lanzar el daemon crond y asegurarnos de que se ejecute siempre que iniciamos el sistema.

pues, enumera los procesos en ejecución :-/ si alguno es "telnet", pues.. ya estas usandolo :P

Saludos!!

Si pero el dice que esté comprobando de forma continua. Eso que le dices es un tanto obvio.  :P
En línea



Con sangre andaluza :)

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: script para deteccion y conexion telnet automatica
« Respuesta #3 en: 26 Julio 2007, 09:25 am »

apsss aunque sea obvio, mucha gente entra preguntando cosas asi xD, pero lo que pasa esq no entendi bien lo que preguntaba, solo leí del codigo para abajo xD, pero si tienes razon, la mejor forma es usando CRON Jobs..

Saludos!!
En línea

stoker

Desconectado Desconectado

Mensajes: 108



Ver Perfil
Re: script para deteccion y conexion telnet automatica
« Respuesta #4 en: 26 Julio 2007, 11:23 am »

gracias por  las respuestas
la guía muy clara, ya había trabajado con cron pero algunas opciones aun no las conocía

adaptando el script para que trabaje desde cron me queda algo así
Código:
#!/bin/bash
# si responde el ping y el telnet esta conectado salimos del script
if ping -c2 192.168.1.42> /dev/null 2>&1
then
if ps -a | grep -s telnet > /dev/null
then
exit
fi
fi

# si responde el ping conectamos por telnet y salimos del script

if ping -c2 192.168.1.42 > /dev/null 2>&1
then
telnet 192.168.1.42 > /home/user1/`date +%d-%m-%y_%H:%M`.txt
exit
fi

# si no responde al ping matamos las conexiones telnet que pueda haber activas
killall telnet > /dev/null 2>&1
exit
en principio trabaja bien pero al salir del script muere el telnet :(
creo que si pudiera evitar ya solo faltaría meterlo en el cron para que se ejecute cada 5 min durante los días laborables de 6 a 16 horas.

también seria interesante controlar si esta conectado por el PID y no por el proceso, así no habría posibilidad que otro telnet liase al script (en principio en esa maquina dudo que nunca se corra otro telnet que no sea el del script)

aprovechando el hilo

Código:
if ps -a | grep -s telnet > /dev/null

da como resultado TRUE si el proceso "telnet" se esta ejecutando

como seria la sintaxis para que diese TRUE cuando no se esta ejecutando ?

muchas gracias por la ayuda  :)
« Última modificación: 26 Julio 2007, 11:32 am por stoker » En línea


Asus eeepc 901 Linux - Kubuntu 8.10 + Wifiway 1.0 Final para netbooks persistent en una SD
stoker

Desconectado Desconectado

Mensajes: 108



Ver Perfil
Re: script para deteccion y conexion telnet automatica
« Respuesta #5 en: 31 Julio 2007, 16:58 pm »

bueno, este es el script
esta en el crontab para que se ejecute cada 5 min

Código:
#!/bin/bash
if ping -c2 192.168.1.90
then
        if ps -a | grep -s telnet
        then
        echo "responde y telnet conectado, salimos del script"
        exit
fi
fi

if ping -c2 192.168.1.90
        then
        echo "responde al ping, conetamos el  telnet"
        exec telnet 192.168.1.90 > /home/user1/`date +%d-%m-%y_%H:%M`.txt
        exit
fi
echo "no responde el ping, matamos el telnet y salimos"
killall telnet
exit



rula bien pero tiene un problema, al salir del script muere el telnet al ser un proceso hijo

alguna solución?

Saludos
En línea


Asus eeepc 901 Linux - Kubuntu 8.10 + Wifiway 1.0 Final para netbooks persistent en una SD
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como activar la deteccion automatica de bluetooth.
Redes
thecirujano 0 1,680 Último mensaje 4 Enero 2011, 14:08 pm
por thecirujano
Activar deteccion automatica de bluetooth
Wireless en Windows
thecirujano 0 2,863 Último mensaje 4 Enero 2011, 14:09 pm
por thecirujano
Quitar conexion automática de una red wifi?
Windows
EuroHack 2 13,815 Último mensaje 23 Marzo 2011, 01:41 am
por d3m3n3t3
Conexión con SSH con SSH-KEY Automatica
.NET (C#, VB.NET, ASP)
P4nd3m0n1um 0 1,212 Último mensaje 26 Abril 2016, 16:17 pm
por P4nd3m0n1um
Script python detección maquinas vulnerables Shodan
Hacking
karrax 0 1,930 Último mensaje 19 Agosto 2017, 17:23 pm
por karrax
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines