[Bash] un paio di script per chi non gli funziona cron

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Linuxand
Prode Principiante
Messaggi: 232
Iscrizione: martedì 9 ottobre 2007, 14:12
Località: Roma

[Bash] un paio di script per chi non gli funziona cron

Messaggio da Linuxand »

Ciao gente.
Dato che a me cron non ne voleva sapere di funzionare ho provato a costruirmi un piccolo script che mi potesse aiutare. Funziona bene, ma ci vuole una combinazione di due script (più quello che volete eseguire).

Partiamo dal primo: è un AlarmClock realizzato attraverso il comando sleep; il giorno di esecuzione e l'orario sono inseriti all'interno dello script. E' ovviamente migliorabile.

Codice: Seleziona tutto

#!/bin/bash
#
#
# GPL
#
logger In esecuzione...
# 1=Lunedì
# 2=Martedì
# 3=Mercoledì
# 4=Giovedì
# 5=Venerdì
# 6=Sabato
# 7=Domenica
if [ `date +%u` -ne "7" ]; then
	logger fine!
	exit 0
fi

alarm_hour="19"
alarm_min="00"
alarm_min=`expr $alarm_min "*" 60`
time_hour=`date +%H`
time_min=`date +%M`
time_min=`expr $time_min "*" 60`
#trap `exit 1` INT - questo non ho capito a che serva.
if [[ $alarm_hour -ge $time_hour || ($alarm_hour -eq $time_our && $alarm_min -ge $time_min) ]]; then
       y=`expr $((alarm_hour-time_hour)) "*" 3600`
       sleepfor=`expr $y + $alarm_min - $time_min`
	logger Dormo per $sleepfor
	sleep $sleepfor
fi
logger Partenza!
# QUI VA LA CHIAMATA AL VOSTRO SCRIPT
exit 0
I comandi logger sono molto utili per il debug (scrivono sul syslog e su user.log)

Eseguire l'AlarmClock ha il difetto che blocca qualsiasi esecuzione successiva; eseguirlo in background è la soluzione ottimale, ma bisogna considerare il funzionamento dei processi in Linux: alla morte del padre, terminano tutti i figli. Quindi dobbiamo trovare il modo di sgangiare il processo dal padre. Qui ci viene in aiuto il comando nohup che permette proprio questo. E' dunque necessario un altro script (io l'ho chiamato bckp)

Codice: Seleziona tutto

#!/bin/bash

nohup /bin/bash ~/AlarmClock &
exit 0
Mettete questo script all'avvio (io l'ho messo nelle sessioni di Gnome) ed avrete il vostro programmino che aspetta l'orario giusto per partire :)

Spero di aver fatto cosa utile ai più.

Ciao :)
(z)
Avatar utente
sverdrup
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 607
Iscrizione: giovedì 15 giugno 2006, 12:51

Re: [Bash] un paio di script per chi non gli funziona cron

Messaggio da sverdrup »

Ottimo, molto bravo,
ma perchè non ti funziona cron??
qual'è il problema??
Ciauzzzzz
"Not everything that counts can be counted, and not everything that can be counted counts."
Avatar utente
Linuxand
Prode Principiante
Messaggi: 232
Iscrizione: martedì 9 ottobre 2007, 14:12
Località: Roma

Re: [Bash] un paio di script per chi non gli funziona cron

Messaggio da Linuxand »

sverdrup ha scritto: ma perchè non ti funziona cron??
qual'è il problema??
Ciauzzzzz
Saperlo. Semplicemente se gli dico di eseguire qualcosa il giorno di domenica alle 19:00, lui semplicemente non lo fa (avevo anche aperto un tema sull'argomento). Visto che non si era riuscito a risolvere, ho trovato una via traversa ^_^

Ciao :)
(z)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti