Newsgroup: it.comp.os.linux.iniziare
Titolo: crontab non funziona

salve,
sto utilizzando una versione customizzata di "slackware" e volevo fare
partire uno script ogni minuto.
inizialmente scrivo crontab -e, inserisco * * * * * ./script.sh, salvo
con :wq (editor vi), sembra che lo salvi ma quando digito crotab -l,
il cron appena inserito non spunta. provo a riavviare ma niente.
Qualcuno potrebbe aiutarmi?
Cordiali Saluti

Prova a mettere il percorso completo dello script anzich� solo quello 
relativo

 relativo
ma quello che ho scritto si riferisce al percorso completo

 ma quello che ho scritto si riferisce al percorso completo
Allora:
./directory/file = percorso relativo
/directory/directory/file = percorso assoluto

con crontab -e non riesco a modificare il file.
per apportare modificare devo editare direttamente il file /var/spool/
cron/crontabs/root
solamente cosi riesco a visualizzare i cron attivi tramite: crontab -
l
purtroppo però non funziona ugualmente, neanche se all'interno del
cron scrivo:
* * * * * /usr/bin/echo "prova"
help please

 il cron appena inserito non spunta. provo a riavviare ma niente.
stiamo parlando del crontab di root o di un utente "normale"?
bye!


route


ops scusa... volevo scrivere root

 help please
Non mi pare una prova molto sensata, prova piuttosto a fargli creare un 
file con touch
/usr/bin/touch /home/tua_home/pippo

 ops scusa... volevo scrivere root
Premessa: un crontab per l'utente "root" non ha molto senso, meglio
usare il crontab di sistema (/etc/crontab).
Detto questo, il problema del path è sempre uguale per tutti: o si
dichiara il path completo per ogni programma che cron deve eseguire,
oppure si specificano i vari path con la direttiva:
PATH=$PATH:/altri/percorsi
a inizio file di cron.
-- 
Massimo Bacilieri AKA Crononauta

 ops scusa... volevo scrivere root
  Allora (tranne che con certe implementazioni inusuali di crond) devi
mettere la tua riga in /etc/crontab.  E attento che questo file ha in più il
campo utente davanti al comando (verifica nella pagina man).
  Ciao,
-- 
Alessandro Selli 
http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.
Chiave PGP/GPG: EC885A8B



scusa, e dove vorresti vederlo quel "prova"? sulla tua shell?
non funziona così, al massimo se vuoi fare una prova scrivi:
* * * * * /usr/bin/echo "prova"> /tmp/prova
ma prima, leggiti meglio la doc di cron

 < 1KVisualizzaScarica
non ho un file crontab sulla directory etc.
Dovrei crearlo?

 * * * * * /usr/bin/echo "prova"
E dove ti aspetti che scriva "prova"?
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net


scusa ma non ho ancora molta esperienza. sotto ubuntu bastava che
inserivo il cron dopo il comando crontab -e e tutto funzionava, ma
sotto slackware facendo le stesse identiche cose non funziona.
Ho provato a scrivere quello che dici tu ma non succede nulla.


pensavo lo scrivesse nella shell

 /usr/bin/touch /home/tua_home/pippo
ho provato anche questo ma nulla.
ma devo modificare il file /var/spool/cron/crontabs/root ???

 pensavo lo scrivesse nella shell
Attento, la shell è una cosa, la console collegata è un'altra.
Se la shell è agganciata a una console, tu sulla console visualizzerai
l'output della shell.
Se la shell *non* è agganciata a una console (ed è certamente il caso
dei processi che girano in background, cioè i demoni come cron) l'output
andrà "perso".


Certo puoi modificare quel file oppure il file /etc/crontab



 Certo puoi modificare quel file oppure il file /etc/crontab
ma il file /etc/crontab neanche esiste... sto uscendo pazzo

 scrivere quello che dici tu ma non succede nulla.
cioè non crea il file /tmp/prova?
ma sei sicuro che il demone stia girando?

Se dai ps aux | grep cron cosa ricevi in output?

ok ok funziona dopo aver riavviato...
un'ultima cosa, per avviare lo script attraverso il cron ho dovuto
modificare il file /var/spool/cron/crontabs/root. Perchè invece non
funziona se modifico il cron attraverso crontab -e?

Mumble � piuttosto strano, l'unica cosa che mi viene in mente � che 
magari il demone era gi� e quindi riavviando la macchina anche il demone 
sia ripartito.
Giusto per curiosit� ora il file /etc/crontab esiste?

 Giusto per curiosità ora il file /etc/crontab esiste?
purtroppo no.
???

 ok ok funziona dopo aver riavviato...
eh beh...
la sai la barzelletta dell'ingegnere informatico con la macchina in panne 
che come tentativo di rimetterla in moto dice ai passeggeri:
"ok, proviamo a scendere dalla macchina e risalirci!"

ahaha no questa mi mancava :D

 Dovrei crearlo?
  Prova.  Ma prima cerca ti scoprire quale implementazione e versione di
cron hai installato.  E quindi vedi nella pagina di manuale se per quel cron
è previsto il file /etc/crontab (alcuni cron non l'usano).  Poi, vedi se il
servizio è attivo, e se nei log di sistema compaiono degli errori correlati
all'avvio di cron o all'esecuzione di crontab -e.
  Ciao,
-- 
Alessandro Selli 
http://alessandro.route-add.net


 il campo utente davanti al comando (verifica nella pagina man).
A me risulta che crontab -e funziona per qualsiasi utente.
[root@exnet ~]# crontab -l
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
MAILTO=gdb
HOME=/home/gdb
# run backup di /home/gdb
00 14  * * * /usr/local/etc/scriptbkp/scriptbkp_run.sh BACKUP
00 14  1 * * /usr/local/etc/scriptbkp/scriptbkp_run.sh AUDIO
#00 14 11 * * /usr/local/etc/scriptbkp/scriptbkp_run.sh NOBACKUP

 A me risulta che crontab -e funziona per qualsiasi utente.
Non proprio. 
cron funziona per root e per tutti gli utenti elencati in cron.allow
oppure se cron.allow non esiste l'uso di cron è interdetto agli utenti
elencati in cron.deny e permesso a tutti gli altri e a root o se 
nessuno di questi due file esiste l'uso di cron è permesso solo a root.
Ora questo meccanismo di controllo può essere implementato da crond 
per cui crontab permette a tutti di editare il proprio file crontab 
oppure può essere implementato da crontab per cui cron esegue qualsiasi
crontab che trova in /var/spool/cron/. Tra questi due estremi sono 
possibili infinite variazioni, in funzione della versione di cron.

 il cron appena inserito non spunta. provo a riavviare ma niente.
 Hai controllato cron.allow e cron.deny?

 A me risulta che crontab -e funziona per qualsiasi utente.
  Non ho sostenuto il contrario.  Ma la maggior parte dei cron prevede
un file crontab di sistema in /etc/ gestito solo dal superutente.
