Foros del Web » Administración de Sistemas » Unix / Linux »

Ejecutar un script como servicio

Estas en el tema de Ejecutar un script como servicio en el foro de Unix / Linux en Foros del Web. Buenas, tengo este script hecho en bash: #!/bin/bash #Obtengo la ip del router donde: # -n Muestra la tabla de enrutamiento en formato numérico [dirección ...
  #1 (permalink)  
Antiguo 06/06/2015, 08:29
 
Fecha de Ingreso: junio-2015
Mensajes: 1
Antigüedad: 9 años, 6 meses
Puntos: 0
Exclamación Ejecutar un script como servicio

Buenas, tengo este script hecho en bash:

#!/bin/bash

#Obtengo la ip del router donde:
# -n Muestra la tabla de enrutamiento en formato numérico [dirección IP]
# tr -s quita los espacios
# cut corta la segunda columna
iprouter=`route -n|grep UG |tr -s " "|cut -d " " -f2`

#Obtengo la mac del router donde:

macrouter=`arp -n|grep -w $iprouter|tr -s " "|cut -d " " -f3`

if test -f /etc/mac_router.txt
then
echo $macrouter > /etc/mac_router.txt
else
touch /etc/mac_router.txt
echo $macrouter > /etc/mac_router.txt
fi

opcion=0
while [ $opcion -eq 0 ];
do
comprobar=`arp -n|grep -w $iprouter|tr -s " "|cut -d " " -f3`
mac=`cat /etc/mac_router.txt`
if [ "$mac" != "$comprobar" ]
then
notify-send "La mac del router ha cambiado"
fi
sleep 5s
done


Básicamente lo que hace el script es meter la mac del router en un txt y comprobar periodicamente si se ha cambiado o no para evitar un ataque man in the middle. En caso de que haya cambiado enviará una alerta con notify-send.

El script en cuestión si lo ejecuto manualmente con sh o ./ funciona perfectamente, pero si lo meto en el cron de root para que se ejecute cada minuto por ejemplo, no mete la mac en el txt ni hace nada, si lo meto en init.d y rc.local tampoco hace nada, y si lo meto en el runlevel 3 para que se inicie en el arranque mete la mac pero cuando modifico la mac para que me envie la alerta no sale ninguna alerta.

No sé qué puede estar fallando, si a alguien se le ocurre algo por favor que lo diga. Gracias.
  #2 (permalink)  
Antiguo 06/06/2015, 14:43
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 11 años, 5 meses
Puntos: 401
Respuesta: Ejecutar un script como servicio

Has probado:
Código BASH:
Ver original
  1. tarea cron .sh >> /etc/mac_router.txt
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #3 (permalink)  
Antiguo 08/06/2015, 20:34
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 6 meses
Puntos: 127
Respuesta: Ejecutar un script como servicio

verifica los permisos de escritura del txt
para que el root tambien pueda escribir en el

Etiquetas: bash, scripting, ubuntu
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:45.