anacron non rispetta timestamp futuri?

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

anacron non rispetta timestamp futuri?

Messaggio da rai »

Bentrovati :ciao:

Lancio uno script con un job di anacron che ha periodicità quotidiana.

Codice: Seleziona tutto

1  60  jobID  /comando/da/eseguire
Questo script compie una serie di azioni se si verifica un evento: ciò accade senza regolarità ma sempre una volta al mese. In quel caso lo script completa il suo compito e, prima di uscire, sovrascrive il timestamp di anacron con uno che rinvia la propria esecuzione al mese seguente. Fin qui andrebbe tutto bene.
Purtroppo, appena anacron parte di nuovo, lo specifico job _non_ viene saltato come mi aspettavo ma viene eseguito comunque. Pensavo che la logica usata da anacron fosse:

Codice: Seleziona tutto

if <oggi> è maggiore o uguale a <timestamp> + <period>:
    esegue il job
    aggiorna <timestamp> con <oggi>
else:
    non fa niente
Invece pare che anacron non rispetti il timestamp se è "futuro"

Sbaglio io qualcosa?
Ho provato a guardare il sorgente di anacron per capire il criterio usato. Il codice è molto pulito, purtroppo sono io che non mi raccapezzo col C
Qualcuno vuole darci un'occhiata per capire come fa anacron a decidere se eseguire un job o meno?

NB
Sono al corrente dell'esistenza di librerie per la pianificazione di eventi (anche tra i moduli standard di Python) ma penso che sia più oculato usare uno strumento di sistema che comunque è in uso per altre gestioni e che evita di avere uno scheduler sempre in attività
Grazie
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: anacron non rispetta timestamp futuri?

Messaggio da rai »

Mi sa che il mio problema non ha riscosso molto entusiasmo :nono:
Chissà se suscito più interesse con un esempio minimo funzionante per provare da sé:

Codice: Seleziona tutto

# crea il job utente per anacron
echo '1   60  mioJob  /usr/bin/touch /tmp/$(date +"%T")_da_anacron' > /tmp/anacrontab 

# mette il timestamp di domani per quel job
echo "$(date -d tomorrow +'%Y%m%d')" > /tmp/mioJob

# lancia anacron per eseguire subito (opzione -n) i job utente (-t) con il timestamp indicato (-S)
anacron -n -t /tmp/anacrontab -S /tmp
se anacron rispettasse il timestamp, il file con l'orario in /tmp non dovrebbe venire creato prima di domani
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: anacron non rispetta timestamp futuri?

Messaggio da crap0101 »

dando un'occhiata ai sorgenti stavo presumendo un qualche errore per cui, aspettandosi normalmente una data passata, ci si fosse dimenticati di gestire quelle future... mi è anche venuto il dubbio di qualche errore nel fare i conti, soprattutto perchè non mi è chiaro come mai si sia messo a reimplementare tutti quei calcoli di calendario, quando potrebbe usare lib già fatte, credo. Ma siccome in tutti gli altri casi sembra funzionare... poi leggendo il changelog
Changes in Anacron 2.1/2.2
--------------------------
* Sean 'Shaleh' Perry <shaleh@(debian.org|valinux.com)> is now maintainer
* if timestamp is from the future, re-run job
* ansi cleanup / code cleaning
quindi sembra proprio che nel tuo caso esegua i comandi a prescindere, e sembra una scelta (anche discutibile) e non un errore.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: anacron non rispetta timestamp futuri?

Messaggio da rai »

Ciao crap0101 :) piacere di rileggerti qui

Grazie del tuo interessamento e della conferma di questa anomalia.

Non voglio dire che si tratti di un bug ma sarebbe un comportamento utile onorare la data futura del timestamp.

Ho inviato una feature request alla mail indicata nel man ma è tornata indietro con "550 Unrouteable address"

Essendo su Ubuntu, dpkg --status dice che maintainer del pacchetto sono Ubuntu Developers ma io penso che il problema vada affrontato upstream.
Avevo pensato di scrivere a https://bugs.debian.org/cgi-bin/pkgrepo ... ge=anacron
ma non vorrei che il loro bug tracker automatico declassi (se mi si passa il termine improprio) il mio report per il numero di versione ubuntiano
Suggerimenti?
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: anacron non rispetta timestamp futuri?

Messaggio da crap0101 »

in effetti guardando in giro non trovo grandi riferimenti... il repo "ufficiale" (penso quello utilizzato inizialmente) pare non aggiornato da circa vent'anni :-D la roba più attiva che ho visto è qui: https://salsa.debian.org/debian/anacron
quindi forse scrivere direttamente a chi lo mantiene in debian non è una brutta idea, se non l'unica....
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2842
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: anacron non rispetta timestamp futuri?

Messaggio da rai »

Ho mandato un bug report a submit@bugs.debian.org

temo che non saranno molto reattivi a quello che leggo:
This package has been orphaned. This means that it does not have a real maintainer at the moment. Please consider adopting this package if you are interested in it. Please see bug number #897138 for more information.
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: anacron non rispetta timestamp futuri?

Messaggio da crap0101 »

ah ecco...
non ti resta che adottare l'orfanello :-)
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 9 ospiti