Pagina 1 di 1

un aiutino con crontab

Inviato: ven 18 gen 2008, 18:05
da danix
Ciao a tutti...
ho un piccolo problema con crontab, immagino sia perchè non l'ho mai usato, comunque... :)
premetto che ho controllato e crond è in esecuzione --> /usr/sbin/crond -110
usando crontab -e ho inserito la seguente riga:

Codice: Seleziona tutto

5 * * * * echo "ciao a tutti" >> /home/miahome/file_di_testo.txt
Se non ho capito male dovrebbe aggiungere la riga "ciao a tutti" al file "file_di_testo.txt" contenuto nella mia home ogni 5 minuti, giusto??

Solo che non funziona :( nella doc non ho trovato nulla che possa aiutarmi, qualcuno di voi mi sa dire se sto sbagliando qualcosa??

Grazie mille a tutti... :)

Ciau

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 18:21
da alnilam
Ciao, dopo aver impostato le regole nel file devi dare

Codice: Seleziona tutto

crontab /path/alfiledelleregole
Col comando crontab -e dovresti aver editato il file che si trova in
/var/spool/cron/crontabs/
Puoi anche copiarti il file in un qualsiasi punto del file system ed editarlo con un editor come vim... poi comunque ricorda di dare il comando scritto sopra...

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 18:32
da Mario Vanoni
danix85 ha scritto:Ciao a tutti...
ho un piccolo problema con crontab, immagino sia perchè non l'ho mai usato, comunque... :)
premetto che ho controllato e crond è in esecuzione --> /usr/sbin/crond -110
usando crontab -e ho inserito la seguente riga:

Codice: Seleziona tutto

5 * * * * echo "ciao a tutti" >> /home/miahome/file_di_testo.txt
Se non ho capito male dovrebbe aggiungere la riga "ciao a tutti" al file "file_di_testo.txt" contenuto nella mia home ogni 5 minuti, giusto??

Solo che non funziona :( nella doc non ho trovato nulla che possa aiutarmi, qualcuno di voi mi sa dire se sto sbagliando qualcosa??

Grazie mille a tutti... :)

Ciau
Prova come utente root, e metti * * * * * echo ... con crontab -e
per provare in fretta, la directory /home/miahome _deve_ esistere!
A me funzionano tutti i comandi cosi`, tutti come utente root.
Diventa utente miahome, fai lo stesso, se non va
allora utente miahome != /home/miahome

Mario Vanoni

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 19:22
da danix
Mario Vanoni ha scritto:Prova come utente root, e metti * * * * * echo ... con crontab -e
per provare in fretta, la directory /home/miahome _deve_ esistere!
A me funzionano tutti i comandi cosi`, tutti come utente root.
Diventa utente miahome, fai lo stesso, se non va
allora utente miahome != /home/miahome

Mario Vanoni
ho problemi anche a farlo andare da root...
per provare ho killato crond e l'ho riavviato in foreground attivando il debug, ho impostato:

Codice: Seleziona tutto

* * * * * echo "ciao a tutti" >> /root/prova.txt
come utente root, ho dato il comando:

Codice: Seleziona tutto

crontab /root/mycrontab
come consigliato da alnilam
e ha funzionato, nel senso che ad ogni aggiornamento (ogni minuto) veniva aggiungo un rigo con scritto "ciao a tutti"...

Per provare allora ho impostato un altro comando (uno script che mi restituisce il mio indirizzo ip):

Codice: Seleziona tutto

* * * * * /root/.scripts/myip.sh >> /root/prova.txt
ho ridato:

Codice: Seleziona tutto

crontab /root/mycrontab
ma cron continua a scrivermi "ciao a tutti" nel file...
ho controllato crontab -l e mi restituisce la riga corretta (quella con lo script per l'IP)
allora ho killato e riavviato crond
e ancora continua a scrivermi "ciao a tutti"...

che faccio adesso??

Grazie a tutti

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 20:14
da alnilam
E' strano il comportamento che descrivi... preso dal dubbio ho provato ad impostare 2 differenti comandi e tutto funziona come dovrebbe...
A questo punto controlla:
-la regola impostata va in conflitto con un'altra regola eventualmente presente nel file?
-lo script che utilizzi ha i permessi di esecuzione impostati?
-hai controllato che piu' istanze di crond non siano in esecuzione?
Altro non mi viene in mente... potresti provare con l'approccio poco "scientifico" del "riavvio il sistema e vediamo se funziona..." ... ;)

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 20:22
da danix
prima di mettermi a fare altri esperimenti, volevo chiedervi, per passare degli argomenti ad un programma che va in crontab, devo metterlo magari tra virgolette o altro??

per farmi capire:

Codice: Seleziona tutto

* * * * * "ls -l /home/miahome"
oppure

Codice: Seleziona tutto

* * * * * ls -l /home/miahome
???

Grazie per l'aiuto... :D

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 20:26
da alnilam
ho provato senza quoting e funziona...

Codice: Seleziona tutto

* * * * * ls -l >> test2

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 20:45
da Mario Vanoni
danix85 ha scritto:
Mario Vanoni ha scritto:Prova come utente root, e metti * * * * * echo ... con crontab -e
per provare in fretta, la directory /home/miahome _deve_ esistere!
A me funzionano tutti i comandi cosi`, tutti come utente root.
Diventa utente miahome, fai lo stesso, se non va
allora utente miahome != /home/miahome

Mario Vanoni
ho problemi anche a farlo andare da root...
per provare ho killato crond e l'ho riavviato in foreground attivando il debug, ho impostato:

Codice: Seleziona tutto

* * * * * echo "ciao a tutti" >> /root/prova.txt
come utente root, ho dato il comando:

Codice: Seleziona tutto

crontab /root/mycrontab
come consigliato da alnilam
e ha funzionato, nel senso che ad ogni aggiornamento (ogni minuto) veniva aggiungo un rigo con scritto "ciao a tutti"...

Per provare allora ho impostato un altro comando (uno script che mi restituisce il mio indirizzo ip):

Codice: Seleziona tutto

* * * * * /root/.scripts/myip.sh >> /root/prova.txt
ho ridato:

Codice: Seleziona tutto

crontab /root/mycrontab
ma cron continua a scrivermi "ciao a tutti" nel file...
ho controllato crontab -l e mi restituisce la riga corretta (quella con lo script per l'IP)
allora ho killato e riavviato crond
e ancora continua a scrivermi "ciao a tutti"...

che faccio adesso??

Grazie a tutti
Non capisco il tuo crontab /dir/file, _mai_ usato.
I files sono in /var/spool/cron/crontabs,
e.g. root, pincopallina etc.

Perche` killare crond?
Con crontab -e (ovviamente come utente giusto) riparte da solo.
Se da utente normale,
ovviamente deve avere il permesso di scrittura sulla directory target.

Mario Vanoni

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 20:59
da danix
Mario Vanoni ha scritto:Non capisco il tuo crontab /dir/file, _mai_ usato.
I files sono in /var/spool/cron/crontabs,
e.g. root, pincopallina etc.
semplicemente:

Codice: Seleziona tutto

$ man crontab
...
crontab file [-u user] - replace crontab from file
...
per usare un file diverso da quello in /var/spool/cron/crontabs in modo da modificarlo con un editor diverso da vi
Mario Vanoni ha scritto:Perche` killare crond?
E' uno degli esperimenti che ho fatto perchè vedevo che nemmeno da root aggiornava il comando che gli avevo assegnato
Mario Vanoni ha scritto:Con crontab -e (ovviamente come utente giusto) riparte da solo.
Se da utente normale,
ovviamente deve avere il permesso di scrittura sulla directory target.

Mario Vanoni
Mi chiarisci cosa vuoi dire con "utente giusto" ?? Intendi root??
per quanto riguarda i permessi sono a posto, ho fatto dei tentativi lanciando a mano i comandi che poi ho messo nel crontab e funzionavano bene...

Ancora grazie mille per l'aiuto... :)

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 21:11
da conraid
danix85 ha scritto: crontab file [-u user] - replace crontab from file
...[/code]
per usare un file diverso da quello in /var/spool/cron/crontabs in modo da modificarlo con un editor diverso da vi
cron è un demone, puoi modificare i file con quel che vuoi.
Al limite dopo dai solo un "contrab -e" e salvi subito senza modificare.
E lascia tutto nei percorsi standard.
Importante per i backup

ho fatto la prova che dici e... mi da problemi con >> mentre con > è andato bene.
Ma è stata una prova troppo veloce.
IMHO prova a fare un file .sh che fa tutto non che fa alcune cose e poi ridirigi l'output.

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 21:30
da Mario Vanoni
danix85 ha scritto: Mi chiarisci cosa vuoi dire con "utente giusto" ?? Intendi root??
per quanto riguarda i permessi sono a posto, ho fatto dei tentativi lanciando a mano i comandi che poi ho messo nel crontab e funzionavano bene...
Sei fai crontab -e da utente pincopallina
il programma deve essere eseguibile da pincopallina,
la directory dove scrive deve essere scrivibile per pincopallina.
Con root non hai mai problemi, onnipotente o quasi!

Redirection con > oppure con >> non fanno differenza,
_se_ i permessi ambo le parti sono giusti,
se sono sbagliati, idem.

Mario Vanoni

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 23:28
da mauro
danix85 ha scritto:

Codice: Seleziona tutto

5 * * * * echo "ciao a tutti" >> /home/miahome/file_di_testo.txt
Se non ho capito male dovrebbe aggiungere la riga "ciao a tutti" al file "file_di_testo.txt" contenuto nella mia home ogni 5 minuti, giusto??
Magari non e' proprio attinente ai problemi che hai ora con crontab, ma con quella impostazione non te lo esegue ogni 5 min. bensi ogni ora, alle 1:05, 2:05, etc...

Re: un aiutino con crontab

Inviato: ven 18 gen 2008, 23:43
da danix
mauro ha scritto:Magari non e' proprio attinente ai problemi che hai ora con crontab, ma con quella impostazione non te lo esegue ogni 5 min. bensi ogni ora, alle 1:05, 2:05, etc...
Eccome se è attinente, come ho precisato è la prima volta che provo ad usare crontab, avevo questo dubbio in effetti dopo aver visto gli esempi nel man, ma nessuno mi aveva fatto notare questa cosa e non sapevo che pensare... per caso mi sapresti dire come fare per farlo eseguire ogni cinque minuti (se è possibile)??

Grazie mille della risposta...
Ciau

Re: un aiutino con crontab

Inviato: sab 19 gen 2008, 7:39
da aschenaz
danix85 ha scritto:...mi sapresti dire come fare per farlo eseguire ogni cinque minuti (se è possibile)??
Metti una / prima del 5 ( /5 ).

Ciao,
nino

Re: un aiutino con crontab

Inviato: sab 19 gen 2008, 10:59
da danix
Grazie a tutti,
adesso vedo se funziona, ho fatto uno script che si occupa di tutto in automatico e viene lanciato ogni 5 minuti... :)

Vi faccio sapere com'è andata... :)

Ciau...