Pagina 1 di 1

Problema col crontab

Inviato: lun 18 set , 2006 3:37 pm
da |Dr_AXIA|
Salve...perdonate l'ignoranza ma...come fare ad eseguire ad intervalli di tempo regolari uno script su una distribuzione slax???

Attraverso il comando "crontab -e " ho visto che praticamente il file da editare (e che ad ogni avvio viene caricato nel filesystem virtuale) si trova in /boot/rootcopy/var/spool/cron/crontabs/root

ho editato questo file di conseguenza e intanto ho fatto eseguire lo script ogni minuto (per prova) ma nn succede niente...xkè???

posto qui la riga che ho aggiunto al suddetto file:

# commento riguardo allo script
* * * * * root /<path-virtuale-su-cui-viene-caricato-lo-script>/<nome-dello-script>.sh

P.S.:da premettere che all'inizio ho provato anche a dargli il percorso effettivo in cui risiede fisicamente lo script....

dove sbaglio???devo forse mettere lo script in modo che venga caricato semplicemente in /root ??

grazie..

Inviato: mar 19 set , 2006 8:36 am
da |Dr_AXIA|
xò ho il dubbio che in effetti il file da editare sia sempre e cmq il crontab di sistema che viene montato in /etc/crontab e che esiste fisicamente in /boot/rootcopy/root/etc/crontab

qualche idea??

Inviato: mar 19 set , 2006 1:27 pm
da TheIrish
Se è uno script che deve eseguire root e che ha effetto sul sistema, se esiste un file /etc/crontab io andrei ad editare quello...

Inviato: mar 19 set , 2006 4:17 pm
da |Dr_AXIA|
embè certo....difatti ero partito anch'io con sta idea...ma come ho detto digitando crontab -e si vede il file di configurazione del crond attivo al momento sul sistema e sto file sulla slax puntava alla directory che dicevo sopra... :roll:

Inviato: mer 20 set , 2006 11:32 am
da |Dr_AXIA|
ho individuato il problema..non è dovuto al crontab ma allo script...questo script praticamente per funzionare si ricava il nome di un file da inviare con questa istruzione

"ls -la <path-in-cui-cercare>|grep *.<estensione-file>|awk...."

il problema sta nell' ls....se dò questo comando nella cartella in cui il file esiste, funziona tutto....se lo dò in altra cartella invece non mi trova nessun file, oppure gli devo dare questo comando

"ls -la <path-in-cui-cercare>|grep .<estensione-file>|awk...."

ma mi trova anche file tipo *.<estensione>.old .... come fare per farmi trovare solo il file .<estensione> ???

Inviato: mer 20 set , 2006 1:03 pm
da |Dr_AXIA|
x ora ho risolto aggiungendo l'opzione --ignore=<estensione-da-escludere>...

conoscete un altro modo?

Inviato: gio 21 set , 2006 7:34 am
da TheIrish
Servirebbe magari leggere lo script completo

Inviato: dom 08 ott , 2006 8:34 am
da gorion
Ciao, posta lo script così che ti si possa aiutare meglio.

Tu stai cercando, da quanto ho capito, la stringa che compone il nome del file, solo che ti funziona solo come se fosse un strstr di ansi c, cioè vede se il pattern è contenuto nella stringa, mentre a te interessa cercare la stringa esatta.

E' corretto ?

Inviato: dom 08 ott , 2006 10:57 am
da active
Ora premetto che slax potrebbe gestire gli script di crond in altra maniera. Comunque /etc/crontab dovrebbe essere utilizzato per far partire a intervalli di 1 ora, 1 giorno, 1 settimana, 1 mese degli script che si trovano nelle directory cron.daily, cron.hourly, cron.monthly....ecc

Quindi le soluzioni sono:
1) crei un piccolo script in bash (o il linguaggio che preferisci) e lo metti in una di quelle dir, per esempio se ti serve che il tuo script venga eseguito una volta al giorno, indipendentemente dal quando, lo metti in cron.daily.

2) tramite il comando

Codice: Seleziona tutto

crontab -e
editi il crontab dell'utente con cui lo lanci. Questo file non ti interessa dove viene messo (solitamente sotto /var/spool/cron/), e verra' eseguito dal demone crond. In questo caso devi conoscere la sintassi del crond.

Inviato: ven 13 ott , 2006 3:18 pm
da |Dr_AXIA|
grazie a tutti...in effetti quello che faccio è andarmi ad editare /var/spool/cron/crontabs/root come hai detto tu active...solo che per rendermi le modifiche attive anche al prossimo riavvio modifico il file nella directory da cui poi la slax monta il vero e proprio /var/spool/cron/crontabs/root del sistema...

Inviato: dom 15 ott , 2006 9:29 am
da active
Già, in effetti essendo una distro live, potrebbe benissimo utilizzare un tree di sistema a parte, per salvarsi delle info che altrimenti andrebbero perse al boot successivo...