Il 29/06/2015 10:52, Walter Valenti ha
scritto:
ecco lo script:Ciao, ho un problema con uno script. Se lanciato da shell fa il "suo lavoro", se schedulato in cron lo fa parzialmente. Cosa dovrebbe fare: rileva il giorno della settimana richiama una funzione, che controlla se esiste una dir, in caso positivo controlla se esiste un file, quindi lo cancella e poi crea un file con lo stesso nome di quello appena cancellato facendo con tar un file bz2 e cancella la dir usata per creare il file. Nello script ci sono una serie di echo per controllare cosa fa, ed alla fine un chown per restituire i files ad un determinato utente. Se metto lo script in cron, nella email che mi invia vedo l'output di echo e quello di chown ma i vari rm e tar li salta. Sapreste darmi una mano ? Grazie.Uno degli errori tipici è dimenticarsi che cron non ha ambiente. Quindi se usi della variabili d'ambiente del tuo script, se non le importi (es. source) non te le trovi. P.S. Se posti il tuo script possiamo aiutarti meglio. Walter #!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin Day=$(date -d "$D" '+%a') tar=/bin/tar rm=/bin/rm chown=/bin/chown function creaTar() { echo 'Inizio operazioni sulla dir DATI...' echo 'Controllo se esiste il backup....' if [ -d Backup\\As400Stamet\\DATI_$1 ] then if [ -f $2_DATI_$1.bz2 ] then echo 'Il backup esiste, procedo...' echo 'Cancello i file di backup vecchi.... ' echo "$2_DATI_$1.bz2" $rm $2_DATI_$1.bz2 fi echo 'Creo tar...' echo "$2_DATI_$1.bz2" echo 'Della dir DATI...' echo "Backup\\As400Stamet\\DATI_$1" $tar -cvjpf $2_DATI_$1.bz2 Backup\\As400Stamet\\DATI_$1 --remove-files echo 'Fine operazioni sulla dir DATI' fi echo 'Inizio operazioni sulla dir GEN...' echo 'Controllo se esiste il backup....' if [ -d Backup\\As400Stamet\\GEN_$1 ] then if [ -f $3_GEN_$1.bz2 ] then echo 'Inizio operazioni sulla dir GEN...' echo 'Il backup esiste, procedo...' echo 'Cancello i file di backup vecchi....' echo "$3_GEN_$1.bz2" $rm $3_GEN_$1.bz2 fi echo 'Creo tar...' echo "$3_GEN_$1.bz2" echo 'della dir GEN...' echo "Backup\\As400Stamet\\GEN_$1" $tar -cvjpf $3_GEN_$1.bz2 Backup\\As400Stamet\\GEN_$1 --remove-files echo 'Fine operazioni sulla dir GEN...' fi } case $Day in Mon) creaTar "Venerdi" "009" "010" echo 'Assegno la proprietà dei file bz2 ad utente As400...' $chown -Rv as400:nogroup /bck-as400/*.bz2 ;; Tue) creaTar "Lunedi" "001" "002" echo 'Assegno la proprietà dei file bz2 ad utente As400...' $chown -Rv as400:nogroup /bck-as400/*.bz2 ;; Wed) creaTar "Martedi" "003" "004" echo 'Assegno la proprietà dei file bz2 ad utente As400...' $chown -Rv as400:nogroup /bck-as400/*.bz2 ;; Thu) creaTar "Mercoledi" "005" "006" echo 'Assegno la proprietà dei file bz2 ad utente As400...' $chown -Rv as400:nogroup /bck-as400/*.bz2 ;; Fri) creaTar "Giovedi" "007" "008" echo 'Assegno la proprietà dei file bz2 ad utente As400...' $chown -Rv as400:nogroup /bck-as400/*.bz2 ;; esac echo 'Fine operazioni della fase di backup..' |