Newsgroup: it.comp.os.linux.sys
Titolo: Script backup che non sembra funzionare

Salve a tutti,
alle 2.15 di ogni notte partono gli script di backup su un mio server.
Lo script per prima cosa crea una directory con la data del giorno e
successivamente esegue questo comando per eliminare la directory più
vecchia di 13 giorni:
find /backup -maxdepth 1 -mindepth 1 -follow -type d -mtime 13 | xargs rm
-rf
il problema è che questo comando non sembra funzionare perchè alla mattina
trovo ancora la directory vecchia. Se lancio il comando a mano invece tale
directory viene cancellata senza problemi.
Non riesco a capire come mai se la lancio a mano funziona e tramite cron non
funzioni. cron viene eseguito alle 2.15 e io provo appena arrivo alle 9,
quindi problemi con le date non dovrebbero essercene. Il server ha data e
ora impostati correttamente.
Cosa potrebbe essere?

 trovo ancora la directory vecchia.
[...]
Prova a mettere in testa all linea del crontab "set -x && ". Poi ti leggi il
mail.
P.S. Puoi "provare" un comando anche con "at now"... Ma devi farlo dallo stesso
account del crontab:
echo "set -x && find ..." | at now
Ciao,
-- 
        Roberto Divia`              Love at first sight is one of the greatest
Dep:PH Bat:53 Mailbox:C02110      labour-saving devices the world has ever seen
Route de Meyrin 385               ---------------------------------------------
Case Postale                                Phone:  
+41-22-767-4994
CH-1211 Geneve 23 CERN                      Fax:    
+41-22-767-9585
Switzerland                                 E-Mail: 
Robert...@cern.ch

 
senza saper leggere ne scrivere e senza aver provato:
non e' che per caso quella pipe '|' messa cosi` fa casino in crontab?
Prova una di queste:
1) metti quel comando in uno script e lancia lo script da cron.
2) cambia il comando in:
find /backup -maxdepth 1 -mindepth 1 -follow -type d -mtime 13 -exec rm
-rf '{}' ';'
3) prova a mettere l'intero tuo comando tra parentesi tonde:
  (find blablabla -blabla |xargs rm -fr)
-- 
echo onailimissaM | awk 'BEGIN { FS = "" }
{ for (i = NF; i >= 1; i-- )
  printf $i }'; echo

   (find blablabla -blabla |xargs rm -fr)
Proverò anche così!
grazie a tutti!

 5 2 * * * /root/bin/Backup_Preparazione
ok. Allora ignora tutti i miei suggetimenti :o)
non credo che funzioneranno.


 Cosa potrebbe essere?
il percorso degli eseguibili da esplicitare?
Ciao
Stefano 

 il percorso degli eseguibili da esplicitare?
No perchè lo script richiamato prima crea delle directory e poi cancella
quelle vecchie, e le directory vengono create, quindi lo script è eseguito.
Solo che non vengono cancellate le directory vecchie tramite il comando che
ho postato.

 echo "set -x && find ..." | at now
Ho provato e il comando funziona alla grande, ma come al solito dal cron non
funziona. Adesso provo con set -x &&.


ok..
nel tuo post originale tu dici
"Lo script per prima cosa crea una directory con la data del giorno "
ergo qualcosa tipo dir_20-06-2006 o simili, vero?
beh, allora, se usi 'date' per generare il nuovo nome cartella, usi 'date' 
anche per generare il nome cartella da eliminare
qualcosa tipo "date -d '13 day ago' +%Y%m%d ", naturalmente da aggiustare 
secondo le tue necessità
HTH
S. 

 secondo le tue necessità
Grazie per la dritta! se non risolvo proverò in questo modo! :D

 Cosa potrebbe essere?
Prova a esplicitare l'utente con cui deve essere eseguito lo script:
10 2 * * * root /path/script
Spesso è per questo che non funzionano gli script in crontab.
Nobusama.