• crontab (leggere solo se curiosi)

    From Leonardo Boselli@21:1/5 to All on Tue Dec 31 14:40:01 2024
    This message is in MIME format. The first part should be readable text,
    while the remaining parts are likely unreadable without MIME-aware tools.

    ai minuti 0,10,20,30,40,50 di ogni ora gira uno script che legge alcuni
    dati a giro e mi genera un file che comprende come .csv i valori O,R,S,T,U,V
    e alle 02:58 un altro che mi genera un altro file con P,Q,Z
    Fin qui tutto bene.
    Mi serve però una terza funzione [che poi è quella utile].
    Uno script che se (P≥O)&fQ,R,(S,T,U) mi fa certe operazioni Y.
    Il vincolo è che questo script deve avvenire solo una volta, anche se le condizioni si ripetono.
    Il campo Z diverrebbe quindi 1 se la operazione Y è già stata lanciata e quindi la condizione diverrebbe (P≥O)&fQ,R,S,T,U)&(Z==0), con Y che
    verrebbe
    resettato alla successiva generazione del secondo file.
    Il mio dubbio filosofico è però:
    lo script a 00,10 etc gira come root, e non cambia mai, gli altri sono configurabili da utente normale, e potrebbero eventualmente anche cambiare
    ogni giorno [anche la funzione f e le operazioni da fare].
    quindi accodare non mi pare buona cosa.
    C'è qualcosa di più elegante che fare girare lo script ai minuti 1,11,21,31,41,51 di ogni ora che controlli che (P≥O )e(Z==0) oppure
    creare uno script con at da lanciarsi al momento P che se f(S,T,U)
    non è vera si riprogramma dopo 10' con un
    altro at [e in questo caso il file aggiuntivo avrebbe solo Q] ?

    --
    Leonardo Boselli
    Firenze, Toscana, Europa

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Leonardo Boselli@21:1/5 to Leonardo Boselli on Tue Dec 31 15:30:01 2024
    This message is in MIME format. The first part should be readable text,
    while the remaining parts are likely unreadable without MIME-aware tools.

    On Tue, 31 Dec 2024, Leonardo Boselli wrote:
    Uno script che se (P≥O)&fQ,R,(S,T,U) mi fa certe operazioni Y.
    Il vincolo è che questo script deve avvenire solo una volta, anche se le condizioni si ripetono.

    Rileggendo vedo che non sono stato eccessivamnte chiaro: O è l'ora in cui
    i valori nel record sono stati scaricati, S è l'ora in cui deve essere verificata la condizione, ossia lanci una volta il terzo script quando f(Q,R,S,T,U) è vera purché dopo l'ora P .

    --
    Leonardo Boselli
    Firenze, Toscana, Europa

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Davide Prina@21:1/5 to All on Sun Jan 5 10:40:01 2025
    Leonardo Boselli ha scritto:

    ai minuti 0,10,20,30,40,50 di ogni ora gira uno script

    e alle 02:58 un altro

    Mi serve però una terza funzione [che poi è quella utile].
    Uno script che se (P≥O)&fQ,R,(S,T,U) mi fa certe operazioni Y.
    Il vincolo è che questo script deve avvenire solo una volta, anche
    se le condizioni si ripetono.

    C'è qualcosa di più elegante che fare girare lo script ai minuti 1,11,21,31,41,51

    io farei far partire questo terzo script dal secondo script, appena
    questo ha finito.

    Non ho poi ben capito la parte "deve avvenire solo una volta", ma
    se vuol dire che deve essere eseguito una volta sola è sufficiente
    far creare un file che impedisce la partenza del terzo script e il
    controllo lo fai fare al secondo prima di lanciare il terzo.
    Il file poi sarà fatto cancellare ad ogni ripartenza (ogni giorno?)

    Leonardo Boselli
    Firenze, Toscana, Europa

    non è preciso ;-) cerco di rimediare:
    Firenze, Toscana, Italia, UE, Europa, Terra, Sistema Solare, Via Lattea, Gruppo Locale, Superammasso della Vergine, Superammasso Laniakea,
    Complesso di superammassi dei Pesci-Balena

    Ciao
    Davide

    --
    La mia privacy non è affar tuo
    https://noyb.eu/it
    - You do not have my permission to use this email to train an AI -
    If you use this to train your AI than you accept to distribute under AGPL license >= 3.0 all the model trained, all the source you have used to
    training your model and all the source of the program that use that model

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Leonardo Boselli@21:1/5 to Davide Prina on Sun Jan 5 16:20:01 2025
    This message is in MIME format. The first part should be readable text,
    while the remaining parts are likely unreadable without MIME-aware tools.

    On Sun, 5 Jan 2025, Davide Prina wrote:

    Leonardo Boselli ha scritto:

    ai minuti 0,10,20,30,40,50 di ogni ora gira uno script

    e alle 02:58 un altro

    Mi serve però una terza funzione [che poi è quella utile].
    Uno script che se (P≥O)&fQ,R,(S,T,U) mi fa certe operazioni Y.
    Il vincolo è che questo script deve avvenire solo una volta, anche
    se le condizioni si ripetono.



    C'è qualcosa di più elegante che fare girare lo script ai minuti
    1,11,21,31,41,51

    io farei far partire questo terzo script dal secondo script, appena
    questo ha finito.
    Non ho poi ben capito la parte "deve avvenire solo una volta", ma
    se vuol dire che deve essere eseguito una volta sola è sufficiente
    far creare un file che impedisce la partenza del terzo script e il
    controllo lo fai fare al secondo prima di lanciare il terzo.

    due problemi: il primo script gira da root, e legge dati da sensori
    ambientali; il secondo legge dati da un database.
    il terzo script è a livello utente (che può personalizzare la funzione
    f() ).
    Con "va eseguito una sola volta" intendevo dire che il test if((P≥O)f(Q,R,S,T,U)) va eseguito ogni voltache euno dei primi
    due script viene modificato [quindi cambiano i parametri] e se vero deve
    venire esguito il resto dello script.
    A questo punto fino a che non cambia il paramtro O (lo script delle
    2:58) oppure venga modificato questo terzo script, non deve più essere eseguito
    [nota: P è l'ora in cui ha girato l'ultima volta lo script 1, O è un ora definita dallo script 2 in cui si deve iniziare a controllare lo script 3]

    Il file poi sarà fatto cancellare ad ogni ripartenza (ogni giorno?)

    alle 2:58 comunque viene sovrascritto dalk nuovo .

    --
    Leonardo Boselli

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lem@21:1/5 to All on Mon Jan 6 12:10:01 2025
    Il giorno mar, 31/12/2024 alle 14.03 +0100, Leonardo Boselli ha scritto:
    ai minuti [...]

    Perdonami, in realtà a me è sembrato parecchio confuso quanto hai scritto,
    e non sono in grado di darti una risposta precisa.

    Ma a naso suggerisco l'uso di incron per il terzo script.

    Il primo script, attivato da cron:

    1) raccoglie dati (dati e basta, niente orari di esecuzione o flag);
    2) leggendo il file "dati1" controlla se ci sono modifiche rispetto
    ai dati raccolti, e lì salvati, in precedenza;
    3) *solo* se* ci sono modifiche, riscrive il file "dati1" aggiornando
    i dati (sostituendo quelli precedenti, non accodando).

    Il secondo script idem, lavorando col file "dati2".

    Nel sistema gira incron, e ciascun utente abilitato ha la sua tabella
    incrontab (simile a crontab), che gestisce in autonomia.

    L'utente Pippo crea un'entry nella sua incrontab così che, quando incron rileva che file1 è stato modificato, oppure che file2 è stato modificato, viene lanciato script3_Pippo. Quindi script3_Pippo viene lanciato solo
    quando serve (o quando può servire, vediamo dopo).

    Script3_Pippo legge i dati da dati1 e da dati2, e fa quel che deve;

    oppure (scusa, non ho capito quale sia il caso preciso)

    script3 legge i dati da dati1 e da dati2, li elabora, trova un risultato e
    lo confronta con quello salvato precedentemente nel file "dati3_Pippo", e,
    se è diverso: fa quel che deve e aggiorna "dati3_Pippo", riscrivendolo col nuovo risultato appena trovato.

    Se le cose stanno come ho inteso io, così funziona. Ma, come scrivevo, posso benissimo aver travisato qualche passaggio.
    --
    Bye, Lem

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Leonardo Boselli@21:1/5 to Lem on Mon Jan 6 13:40:02 2025
    This message is in MIME format. The first part should be readable text,
    while the remaining parts are likely unreadable without MIME-aware tools.

    On Mon, 6 Jan 2025, Lem wrote:
    Perdonami, in realtà a me è sembrato parecchio confuso quanto hai scritto, e non sono in grado di darti una risposta precisa.
    Ma a naso suggerisco l'uso di incron per il terzo script.
    3) *solo* se* ci sono modifiche, riscrive il file "dati1" aggiornando
    i dati (sostituendo quelli precedenti, non accodando).

    in realtà sovrascrive comunque, perché tra i dati c'è il tempo in cui i
    dati sono stati raccolti. (se il dato è più vecchio di 5 minuti deve
    venire ignorato, ma questa sarebbe un anomalia già prevista nellos cript
    3)
    Il secondo script idem, lavorando col file "dati2".

    quindi incrontab partirebbe comunque dopo ogni aggiornamento di file 1.

    Script3_Pippo legge i dati da dati1 e da dati2, e fa quel che deve;
    oppure (scusa, non ho capito quale sia il caso preciso)

    script3 deve venir lanciato per la prima volta a una certa ora (che viene impostata da script 2 e riportata anche in dati2).
    A questo punto applica a tutti i dati (compreso time() corrente) la
    funzione f e in base al risultato decide se
    eseguire le operazioni presenti nello script, oppure
    rilanciare lo script dopo 10 minuti oppure tutte e due le cose oppure terminare.
    La cosa a cui avo pensato è che script2 chiamassa at e gli desse in pasto script3, poi al momento impostato script 3 parte, e se deve ripetersi
    richiama at.
    Chiedevo se c'era qualcosa di più elegante.

    [per capire come deve funzionare faccio un esempio: script 0 legge i dati ambientali; script 2 legge i miei piani per la giornata e decide quando
    deva svegliarmi, e dice nel file2 anche che tipo di impegno è.
    Se l'impegno è "vado a camminare" allora f() sa che se è umido non vado, quindi se al momento in cui la sveglia dovrebbe suonare la umidità esterna fosse oltre 85% allora differisce la sveglia fino a quando non si asciuga
    un po'; se invece è <85% allora mi sveglia e non riattiva la chiamata una successiva volta. [se passano le 9:30 suona comunque e non riattiva]

    --
    Leonardo Boselli

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)