El vie, 24-08-2007 a las 10:33 -0300, Maxi escribió: > Hola gente, > > Tengo un script[1] muy simple, que me trae un problema y no veo como > mejorarlo.... > El script debe copiar archivos de un path a otro. > El script esta en el cron, y cada 20 minutos se ejecuta. > En el path original constanemente se escriben archivos, y el problema > es que hay momentos que se estan escribiendo archivos y el script > entra en funcionamiento, lo que ocurre es que el archivo que estaba > abierto se copia mal. > > ¿En el script, como puedo consultar y no copiar si el archivo origen > esta abierto o esta siendo utilizado? > > Una opcion seria consultar por el tamaño del archivo, dos veces, para > ver si hay diferencia, si la hay es por que el archivo esta creciendo, > por ende se esta usando. > > Pero habra alguna otra manera de saberlo? un... if [ $file is open ] > > [1] > #!/bin/bash > > cd /var/www/webmail/voice/ > path="/var/www/backup" > > for file in *.wav > do > file_new=`echo "$file" | sed "s/://g"` > if [ ! -e $path/$file_new ] > then > cp $file $path/$file_new > fi > done > > > > Saludos. > Maxi. > ¿Y por qué no usas RSYNC? Tendrás la ventaja de que si cambia algún archivo ya copiado lo sincronizará... #!/bin/sh LOCAL=/var/www/webmail/voice/ BACKUP=/var/www/backup/ rsync -avz --include=*.wav $LOCAL $BACKUP ------------------- Puedes probar añadiendo la opción --dry-run para ver que haría sin hacerlo. Saludos -- http://soleup.eup.uva.es/mariodebian
Attachment:
signature.asc
Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada digitalmente