Registrarse
Home
Foros
Miembros
Calendario
Normas
Ayuda

Foros de usuarios de openSUSE
Retroceder   ForoSUSE > Zona Técnica > Programación y Scripts


Síguenos en Twitter Suscríbete a nuestras noticias Acompáñanos en Facebook

Respuesta
 
Herramientas Desplegado

Ejecucion automatica de script bash
  #1  
Antiguo 11-oct-2011, 02:04
Avatar de UnderUp
UnderUp UnderUp está desconectado
Miembro Junior
 
Fecha de Ingreso: 27-agosto-2008
Ubicación: Chincha - Peru
Versión: openSUSE 12.3 64bits
Mensajes: 423
Agradecimientos: 6
Agradecido 34 Veces en 31 Mensajes
Poder de Credibilidad: 10
UnderUp está en el buen camino
Enviar un mensaje por MSN a UnderUp
Question Ejecucion automatica de script bash

Hola amigos del foro.

Bueno, al grano. Tengo un script en bash, y lo que quiero es ejecutarlo automaticamente.

El script y la problematica que me oblicgo a hacerlo esta en el siguiente post del foro:
http://www.forosuse.org/forosuse/showthread.php?t=26875

Las interrogantes que tengo son:

1) ¿Cual es el lugar apropiado para colocar el script, ya que se debe ejecutar con privilegios de root?
2) ¿Como hago para que el script se ejecute automticamente siempre y cuando samba necesite hacer un escaneo de la red local? Osea, quiero ejecutarlo antes de que samba escanee el grupo de trabajo.
¿Hay alguna forma de ejecutar un evento "antes de..." ejecutar samba cliente o algo asi?

Se que se puede configurar cron para que ejecute el script cada cierto tiempo (lo cual seria una solución viable pero posiblemente el script se ejecute innecesariamente; pero deseo ejecutarlo antes de que samba necesita resolver nombres de hosts, de esa forma el archivo hosts se mantendra actualizado con la relacion de hosts de la red local siempre que sea necesario.

Espero me hechen una mano, ya que en el post que dio origen a esta idea, no tuve mucha ayuda que digamos.

Por fi por fi..!!!
Señor Diablo Rojo, y los demas grandes del foro, suplico su ayuda.
Responder Citando
  #2  
Antiguo 11-oct-2011, 02:27
Avatar de karlggest
karlggest karlggest está desconectado
Moderador
 
Fecha de Ingreso: 07-febrero-2007
Ubicación: Ourense
Versión: Leap 42.3
Mensajes: 8.359
Agradecimientos: 47
Agradecido 1.312 Veces en 970 Mensajes
Poder de Credibilidad: 20
karlggest está en el buen camino
1) Fácil: puedes ponerlo en el mismo lugar que esté smb-client (en este caso /usr/bin) o bien en /usr/sbin por aquello de que precisa privilegios de root -aunque no sería preciso.
2) Puedes crear un alias o un script con el nombre "smbclient" Yo probaría con un alias... puedes ver el contenido de /etc/profile.d/ para hacerte una idea de qué cosas hacer... yo lo que pensaba sería un alias así:
Código:
alias smb-client="script.sh && smbclient"
Supongo que hay formas mejores, pero eso debería funcionar.

Bueno, faltaría resolver la cuestión de los privilegios.. quizás con setuid root o algo así (mi idea o cualquiera que se me ocurra del tipo "ejecutar antes de" implica que se lanzan ambos comandos con el mismo usuario)...

Salud!!
__________________
http://sementedotempo.blogspot.com/

-Si lo creen unos pocos, es un delirio; si son muchos los creyentes, es una religión
Responder Citando
  #3  
Antiguo 11-oct-2011, 14:59
Avatar de Defton
Defton Defton está desconectado
Miembro Senior
 
Fecha de Ingreso: 03-abril-2007
Ubicación: Mexico/SanLuisPotosi
Versión: 42.1
Mensajes: 864
Agradecimientos: 7
Agradecido 156 Veces en 98 Mensajes
Poder de Credibilidad: 12
Defton está en el buen camino
Enviar un mensaje por MSN a Defton Enviar un mensaje por Skype™ a Defton
mmm... no se que tan viable sea ponerlo en /etc/init.d, desconozco a que runlevel se ejecuta samba para hacer que se ejecute antes, pero seria cosa de buscarle ;P
Saludos
__________________
__________________________________________________

Mi Blog:
http://elblogdedarkspark.blogspot.mx/
Canales de Youtube:
http://www.youtube.com/user/DarkSpark2099
http://www.youtube.com/user/defton En des-uso
Responder Citando
  #4  
Antiguo 11-oct-2011, 16:35
Avatar de karlggest
karlggest karlggest está desconectado
Moderador
 
Fecha de Ingreso: 07-febrero-2007
Ubicación: Ourense
Versión: Leap 42.3
Mensajes: 8.359
Agradecimientos: 47
Agradecido 1.312 Veces en 970 Mensajes
Poder de Credibilidad: 20
karlggest está en el buen camino
Cita:
Iniciado por Defton Ver Mensaje
mmm... no se que tan viable sea ponerlo en /etc/init.d, desconozco a que runlevel se ejecuta samba para hacer que se ejecute antes, pero seria cosa de buscarle ;P
Saludos
Jejeje, ahora con el "nuevo" sistema de arranque, no tengo la menor idea de cómo se hace eso (aunque eso supone que se debe de hacer en el arranque ). Hace algún tiempo estuve intentando configurar dos servicios para que uno se ejecutara antes que otro, y por muchas vueltas que le di no logré hacerlo -aunque según leí y tal estaba todo bien xd... Y ahora con systemd, ¡otra vez a cambiar el sistema de arranque!!! aunque eso sí, esta vez cambia todo...

Salud!!
__________________
http://sementedotempo.blogspot.com/

-Si lo creen unos pocos, es un delirio; si son muchos los creyentes, es una religión
Responder Citando
  #5  
Antiguo 11-oct-2011, 18:28
Avatar de DiabloRojo
DiabloRojo DiabloRojo está desconectado
Super Moderador
 
Fecha de Ingreso: 19-marzo-2005
Ubicación: En un lugar del planeta Tierra
Versión: La ultima estable
Mensajes: 16.842
Agradecimientos: 615
Agradecido 2.618 Veces en 1.768 Mensajes
Poder de Credibilidad: 10
DiabloRojo llegará a ser famoso muy pronto
Truco:

Usar el archivo /etc/init.d/after.local para añadir la ejecución del script, lee los comentarios dentro del archivo after.local, al que hay que hacerle ejecutable con permisos 744

Mas información: http://forums.opensuse.org/english/g...level-3-a.html
__________________
NORMAS A CUMPLIR EN LOS FOROS (Lectura obligatoria) Lo siento, no contesto privados sobre problemas con GNU/Linux.
Síguenos en TWITTER y en FACEBOOK
Código:
Buscador de   Alojamiento      Alojamiento     Otros
 paquetes:    de imágenes:     de ficheros:    buscadores:
Search        TinyPic          Ifile Wuala     Simple y Facil
Webpinstant   Paste Suse       SendSpace       TextSnip  Cl1p

Última edición por DiabloRojo; 11-oct-2011 a las 18:31
Responder Citando
  #6  
Antiguo 11-oct-2011, 20:13
Avatar de UnderUp
UnderUp UnderUp está desconectado
Miembro Junior
 
Fecha de Ingreso: 27-agosto-2008
Ubicación: Chincha - Peru
Versión: openSUSE 12.3 64bits
Mensajes: 423
Agradecimientos: 6
Agradecido 34 Veces en 31 Mensajes
Poder de Credibilidad: 10
UnderUp está en el buen camino
Enviar un mensaje por MSN a UnderUp
Amigos del foro, muchas gracias por responder. Todo aporte es muy agradecido de mi parte.

Aunque, me parece que interpretaron mal mis intenciones o no me explique bien.

Las respuestas obtenidas creo que son para ejecutar el script cuando arranca el sistema, inicia sesion o algo parecido. Pero la intención no es esa.

Lo que pretendo es que, cuando samba intente escanear o acceder (mendiante dolphin o smb4k o cualquier otra herramienta que use samba) a un recurso compartido, antes de ejecutar la resolucion de nombres que use samba, primero ejecute el script; de esa forma los nombres y sus respectivas ips estarian disponibles en el archivo hosts.

Bueno, les comento con un ejemplo para que lo entiendan mejor.

La red esta configurada por dhcp, asi que las ips de las maquinas en la red local (eterogenea con maquinas windows y maquinas linux) nos son siempre las mismas en cada apagar/encender de un equipo.

Debido a problemas de resolucion de nombres por usar openDNS y equipos con Win7 en la red local (Con WinXp no suceden estos problemas), samba no resuelve correctamente las direcciones ip tomando como base los hostnames.

El script lo que hace es escanear la red local, partiendo de las direcciones ip, para asi obtener los respectivos hostname de netbios y los anexa al archivo hosts (El que es usado para resolver nombres antes de usar el de DNS configurado).

Asi que, cuando un usuario linux intente acceder a un recurso compartido, primero debe actualizar las direcciones ip de cada hostname (Tarea q hace el script).

Esa actualizacion no es necesariamente cada que el usuario encienda la maquina, sino cada vez que samba lo requiera.

Podrían darse los siguientes casos:

1) El usuario se logueo y trabaja con el equipo, pero no usa samba en ningun momento (Ojo que samba se carga al inicio del sistema para estar disponible)
Asi que, en ese caso el script no se debe ejecutar, ya que no es necesitado por samba en ningún momento.

2) EL usuario se loguea, una hora despues necesita acceder a un recurso compartido, usa smb4k, dolphin o cuaqluier otra herramienta para acceder a samba. En ese caso, el script debe ejecutarse antes que samba intente acceder al recurso compartido. Asi, cuando samba intente resolver los nombres, ya los tenga disponible en el archivo hosts.

El equipo no se apago ni reinicio en ningun momento. Dos o tres horas despues, el usuario nuevamente necesita acceder a un recurso compartido; pero como las ips estan por DHCP, puede que hayan cambiado. Asi que, nuevamente, cuando el usuario intente acceder al recurso compartido, debe ejecutarse antes de que samba intente acceder al recurso compartido, teniendo asi samba ya disponible los ips correctos en el archivo hosts.

Espero haber sido lo suficientemente claro respecto a la intencion.

Una alternativa, no muy optima seria, por ejemplo, configurar en CRON que el script se ejecute cada media hora; pero ello implicaria que se usaria un recurso que consume proceso, consume la red y que lo mas probable que en ese momento no sea necesario.

Imagínense este script en todas las maquinas con sopenSUSE ejecutandose cada media hora en cada uno de los equipos. Esta alternativa consumiria mucho el ancho de banda de la red local, que en el 95% de los casos no sera necesario.

Espero hayan captado la idea.

De antemano, muchas gracias por los aportes.
Responder Citando
  #7  
Antiguo 13-oct-2011, 15:39
Avatar de DiabloRojo
DiabloRojo DiabloRojo está desconectado
Super Moderador
 
Fecha de Ingreso: 19-marzo-2005
Ubicación: En un lugar del planeta Tierra
Versión: La ultima estable
Mensajes: 16.842
Agradecimientos: 615
Agradecido 2.618 Veces en 1.768 Mensajes
Poder de Credibilidad: 10
DiabloRojo llegará a ser famoso muy pronto
No tengo ni idea salvo que mires si te sirve profile y bashrc, pero si al final lo resuelves, nos gustaría saber la solución.
__________________
NORMAS A CUMPLIR EN LOS FOROS (Lectura obligatoria) Lo siento, no contesto privados sobre problemas con GNU/Linux.
Síguenos en TWITTER y en FACEBOOK
Código:
Buscador de   Alojamiento      Alojamiento     Otros
 paquetes:    de imágenes:     de ficheros:    buscadores:
Search        TinyPic          Ifile Wuala     Simple y Facil
Webpinstant   Paste Suse       SendSpace       TextSnip  Cl1p

Última edición por DiabloRojo; 13-oct-2011 a las 15:42
Responder Citando
  #8  
Antiguo 13-oct-2011, 20:43
Avatar de UnderUp
UnderUp UnderUp está desconectado
Miembro Junior
 
Fecha de Ingreso: 27-agosto-2008
Ubicación: Chincha - Peru
Versión: openSUSE 12.3 64bits
Mensajes: 423
Agradecimientos: 6
Agradecido 34 Veces en 31 Mensajes
Poder de Credibilidad: 10
UnderUp está en el buen camino
Enviar un mensaje por MSN a UnderUp
Personalmente,e para mi es un honor que amigos foreros de gran credibilidad hayan contribuido en este post.

A todos, muchas gracias.

Pero, debido a que ya soluciones el lio sin necesidad del script en mencion, creo que ya no indagare mas en el tema de ejecutar el script automaticamente.

La solucion al mismo en el post
http://www.forosuse.org/forosuse/showthread.php?t=26875

Y por cierto, espero toda la info de forosuse no sea borrada, ya que este foro es como mi repositorio de soluciones a problemas en openSUSE.

Gracias
Responder Citando
Respuesta

Marcadores

Etiquetas
bash, hosts, samba, script


(0 miembros y 1 visitantes)
 
Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Script en Perl o bash se puede hacer? obtimus Programación y Scripts 4 06-may-2011 06:10
Lanzador de un script en bash [SOLUCIONADO] victorhck General OpenSUSE 4 20-sep-2010 20:22
Script en Bash...ayuda! DCG Programación y Scripts 9 12-jul-2007 22:47
Script bash para tener el mezclador a gusto migtei FAQs, Manuales y Tutoriales 0 19-feb-2007 22:35
Parar e iniciar servicios en linux ubaloie FAQs, Manuales y Tutoriales 1 26-may-2006 06:31



Síguenos en Twitter Suscríbete a nuestras noticias Acompáñanos en Facebook


La franja horaria es GMT +2. Ahora son las 20:33.
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.

Esta página está bajo una licencia de Creative Commons, salvo que no se indique lo contrario.
Creative Commons License

Valid CSS!

Diseño por:Designed by: vbdesigns.devbdesigns.de 
Contáctenos - ForoSUSE - Archivo - Declaración de Privacidad - Arriba