PDA

View Full Version : PROBLEMI CON CRON (E GETMAIL)


digitaldavid
02-10-2009, 14:16
Ciao a tutti,

io ho configurato un server mail con opensuse 11.1 con postfix+getmail+dovecot. Funziona tutto bene. Ho inserito nella cartella home dell'utente il file getmailrc e se lo faccio partire dalla shell con getmail -r file funziona tutto benissimo e scarica, visto che ho messo read_all = false sole le nuove email. Il problema è che non riesco a fare funzionare il comando in automatico ne con cron ne con crontab. Ho inserito uno script tipo "*/1 * * * * user getmail -r file". Getmail funziona e lavora (ossia scarica le email) il problema che non aggiorna il file old (in pratica non setta come seen le email scaricate) e quindi continua a scaricarle. Devo lanciare lo script dalla shell per fargli ricordare dove è arrivato a scaricare. Mi sembra davvero molto strano. Credo di sbagliare con cron o con crontab, ma non ho idee. Grazie per tutto in anticipo.

sacarde
02-10-2009, 15:39
lanciarlo da shell implica le variabili d'abiente impostate....

lo fai collo stesso utente il cron, vero?




p.s.
prova a mettere il comando dentro uno script

#!/bin/bash -l
....
....

esegue lo script come shell di login

digitaldavid
02-10-2009, 16:02
Intanto grazie!

io ho inserito un file con questa riga in cron.d:
"*/1 * * * * posta (è il nome dell'utente) getmail -r file". Ti dico, il file funziona, perchè fa il retrive dell'email e aggiorna il file di log, ma non aggiorna il file con il quale si ricorda quali sono le email già scaricate. Il problema che la sintassi è la medesima che, invece, funziona se faccio partire il file direttamente dalla shel dell'utente posta con getmail -r file.

Dici che è meglio che provo con un file d'avvio? Dove devo metterlo per fare in modo che parta automaticamente al boot (non al login)?

Grazie ancora!

sacarde
02-10-2009, 16:06
prova a fare uno script e metterlo all'avvio....

tanto per provare che funziona

esempio in : /etc/rc.local

digitaldavid
02-10-2009, 16:31
Ho fatto un file getmail e l'ho inserito in re.d, con il segunete contenuto:

#!/bin/bash -l

getmail -r file

Ho riavviato, ma non sucede nulla. Sbaglio sintassi?

Grazie.

Deco

sacarde
02-10-2009, 16:35
lo hai inserito in /etc/rc.d ?

va anche bene, ma poi devi eserguirlo....... no?

come fai a dirgli l'utente ?


p.s.
l'hai reso eseguibile?
che distro usi?

digitaldavid
02-10-2009, 16:42
Eseguibile è eseguibile. Come faccio a dirgli l'utente con il quale deve eseguire? deco aggiungere, dopo -l, il nome dell'utente?

Uso opensuse 11.

Grazie.

Deco

sacarde
02-10-2009, 16:50
mmm

prova a valorizzare la variabile: USER

oppure ti logghi come utente (ma questo devo controllare come fare via batch)

digitaldavid
02-10-2009, 16:53
"prova a valorizzare la variabile: USER"

Ossia?

Non ho la più pallida idea della sintassi di questi script!

Grazie!!!!

sacarde
02-10-2009, 17:05
export USER=.........


p.s.
ma nel crontab, lo avevi inserito con crontab-e (di root o dell'utente?)

g.bechis
05-10-2009, 13:58
prova (come root) con i comandi (adattandoli ovviamente):
# crontab -u posta -e
e inserisci come ultima riga:
*/1 * * * * /usr/bin/getmail /etc/file