ayuda para script

Imagen de jmvidalvia
0 puntos

¿como podría meter en un script una rutina que verificara la hora del sistema, y en el caso de que se haya superado esta hora ejecute un comando?

Ya se que con crontab se pueden planificar comandos, pero a mi me interesa que se verifique la hora recursivamente...

Gracias!

Imagen de slap
+1
0
-1

Te muevo al foro apropiado.

Así a bote pronto se me ocurre esto:

#!/bin/sh
HORACOMPLETA=`date | cut -d " " -f 4`
HORA=`echo $HORACOMPLETA | cut -d ":" -f 1`
MINUTOS=`echo $HORACOMPLETA | cut -d ":" -f 2`
if [ "$HORA" = "13" ];
then
if [ "$MINUTOS" = "03" ];
then
(programa_a_ejecutar)
else
./ejecutar.sh
fi
else
./ejecutar.sh
fi

Grábalo como ejecutar.sh

__________.oooO_Oooo.__________
Equipo de moderadores del Foro
Normas del foro

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de joseluis
+1
0
-1

La recuperación de la hora también se podría hacer utilizando los formatos con date:

if [ `date +%H%M` -gt 1520 ]; then
 # ejecuta lo que corresponda si la hora es mayor que las 15 y 20 minutos
fi

Lectura obligada:
+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de jmvidalvia
+1
0
-1

Gracias por las dos ideas!

He hecho un script para que mi hijo se vaya a la cama a las 21:30. Como tiene 11 años todavía no sabrá editar el script....de momento.

Primer script (mountnet.sh):

#!/bin/sh
ifconfig eth0 down
ifconfig eth0 up
iwconfig eth0 essid xxxxx key s: xxxx
dhclient eth0
ifconfig eth0 netmask 255.255.255.0 broadcast 192.168.1.255
/home/me/scripts/checktime.sh

segundo script (checktime.sh):

#!/bin/sh
if [ `date +%H%M` -gt 2130 ];
then
ifconfig eth0 down
else
sleep 60
nohup ./checktime.sh &
fi

+1
0
-1
Imagen de joseluis
+1
0
-1

También podías haberlo hecho con cron:

sudo crontab -e

y añades la línea

30 21 * * * /sbin/ifconfig eth0 down

A partir de ahí todos los días a las 21:30 cortará la red (que es lo mismo que hacen tus scripts).

El crontab -e lo ejecutas con sudo para que lo meta en el cron de root y así tenga permisos para ejecutar el /sbin/ifconfig eth0 down.


Edito el comentario:
Vaya, no me había dado cuenta que no te interesaba utilizar crontab y que querías hacerlo con script recursivo.
Lectura obligada:
+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de jmvidalvia
+1
0
-1

Sí, el problema era que con crontab si se reinicia el sistema a las 21:31, el crontab ya no se ejecuta y no se cortaría la red, que es lo que pretendo.

Gracias! 

+1
0
-1
Imagen de slap
+1
0
-1

Para no tener que llamar al script recursivamente:

#!/bin/sh
while [ `date +%H%M` -lt 2130 ]; do
sleep 30
done
ifconfig eth0 down

sLap

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de jmvidalvia
+1
0
-1

Mucho mejor!
Gracias!

(esto me pasa por no haber estudiado informática) Sonriente

+1
0
-1