Newsgroup: it.comp.os.linux.sys
Titolo: fetchmail   demone o crontab ?

Ciao,
 
ho l'esigenza di eseguire il fetchmail a intervalli di 5 minuti ma
NON durante alcune ore notturne.
 
 
Ipotesi 1
 
Lo eseguo normalmente come demone in background e lo fermo e riavvio
ogni notte con due righe di crontab:
 
0 2 * * *  root systemctl stop  fetchmail
0 4 * * *  root systemctl start fetchmail
 
Questo metodo mi pare possa andar bene anche se ha il difetto che se
per qualche motivo il server alle 4:00 fosse down allora il fetchmail
non ripartirebbe sino al giorno successivo.
 
 
 
Ipotesi 2
 
Lo eseguo non come demone ma con il crontab:
 
*/5 0-1,4-23  * * *   root  /usr/bin/fetchmail -f /etc/fetchmailrc
 
In teoria va bene ma ha il grosso difetto che se il ciclo di fetch
delle email dura più di 5 minuti ho la sovrapposizione di due 
esecuzioni con chissà quali casini...
 
 
 
Ipotesi 3   (credo la migliore)
 
Scrittura di uno shell (lanciato ogni 5 minuti dal cron) che
lancia il fetchmail solo dopo aver controllato che:
  -  non sia ancora in esecuzione il fetch precendente
  -  non sia l'orario notturno vietato
 
 
 
A qualcuno viene in mente qualche altra idea ?
 
 
-- 
Stefano L.
 

 chissà quali casini...
 
potresti lanciarlo attraverso uno script che prima testa se c'è una 
istanza in esecuzione e nel caso esce.
fra l'altro credo che scriva anche il pidfile quindi dovrebbe essere 
anche relativamente semplice.


Forse una variazione sul punto 3 ed 1.
 
Ogni tot (ora? minuto?) si controlla se "fetchmail"
sia "attivo" oppure no.
In funzione della risposta e dell'orario, si attiva
o disattiva "fetchmail".
 
Cioe`:
 
fm attivo / orario OK -> niente
fm fermo / orario OK -> start fm
fm attivo / orario NOK -> stop fm
fm fermo / orario NOK -> niente
 
Questo ogni tot, come scritto sopra magari ogni ora.
 
Quindi "fetchmail" funziona a modo suo, ma viene fermato
od attivato come al punto uno, solo che questo viene
_controllato_ ogni ora (o minuto).
 
bye,
 
-- 
 
piergiorgio

non ripartirebbe sino al giorno successivo.
 
Mettici più start :-)
 
Oppure esegui ogni 10 minuti un check, e nel check controlli l'orario e
confronti lo stato del demone con quello desiderato; e se differiscono,
intraprendi l'azione opportuna.
 
Leonardo
-- 
 
"You all presumably know why" :-) :-(

 Mettici più start :-)
 
Giusto, mi sa che è la più semplice.
 
Una cosa del genere
 
0 4,5,6 * * *  root systemctl start fetchmail
 
Se il server è giù per tre ore di fila ho ben altri problemi...
 
 
Grazie a tutti.
 
 
-- 
Stefano L.
 

 non ripartirebbe sino al giorno successivo.
 
  Per questo c'è anacron.. Crei lo script /etc/cron.daily/fetchmail che
verifichi l'assenza del file fetchmail.pid e, se assente, esegue il fetch.
 
 
  Ciao,
 
 
Alessandro
 

 Giusto, mi sa che è la più semplice.
 
E invece no :(
 
Il fatto è che se alle 2:01 il server si riavvia il fetchmail
riparte allegro e giulivo e questo non deve succedere !
 
 
Alla fine ho optato per far eseguire il fetchmail dal crontab,
quindi ho tolto dal file /etc/crontabrc la riga:
 
 set daemon 300
 
e ho creato uno shell fetch_mail.sh che contiene la riga:
 
 fetchmail /usr/bin/fetchmail -f /etc/fetchmailrc --pidfile ${pidf} --syslog
 
Il parametro --pidfile ${pidf} evita che due esecuzioni si accavallino
 
E nel crontab ho messo
 
 */5 0-2,4-23  * * *   fetchmail    fetch_mail.sh
 
 
 
 
-- 
Stefano L.

On 22/08/2018 17:22, Stefano L.  wrote:
 >[SUPERCUT]
 >
 > A qualcuno viene in mente qualche altra idea ?
 >
 >
Puoi usare monit per verificare se fetchmail è up e rilanciarlo nel caso 
non lo sia. Credo che sia abbastanza flessibile da gestire anche una 
regola oraria (ma non ho verificato).
 
S.