[gl-como] Controllo file in scrittura

The Pirla thepirla@interfree.it
Sab 25 Giu 2011 16:08:26 CEST


Il giorno mer, 15/06/2011 alle 17.42 +0200, Carlo Filippetto ha scritto:

>                 while [ $(lsof $1/$file2 | wc -l) != 0 ] ; do
>                         echo "file $file2  ancora in scrittura,
> attendo 5 secondi" >> $log
>                         sleep 5
>                 done
> 
> Lo script funziona, ma solo se fatto partire a mano, se gira con il
> cron non capisco perché restituisce immediatamente '0' skippando
> quindi il ciclo e spostando il file che è ancora in scrittura.
> 
Ciao,

a parte che lsof non verifica se il file è in scrittura, ma solo se è
aperto da qualche processo. Quindi potrebbe anche essere aperto ma in
lettura.
Io ti consiglierei di usare inotify.
Praticamente metti lo script in controllo su un particolare path e gli
dici di farti notificare tutte le close dei file.
In questo modo, appena il file viene chiuso (e quindi l'upload ha
finito) il tuo script può procedere con l'archiviazione.

Puoi cominciare con qualcosa del genere 
 inotifywait -mrq -e close_write 
e poi affinare la cosa.

-- 
Ciao
        Pirla

Per rispondere in E-mail thepirla (chiocciola) interfree.it
*** un bacio ai pupi ***

---> Linux user since yesterday <---
--->     Linux User #389536     <---
GPG Key Fingerprint: 5819 BB85 AEDB BEDF 6A5C 8C4B 2B03 6D0C 5960 0554
GPG Key ID:          59600554
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  198 bytes
Descrizione: This is a digitally signed message part
URL:         <http://lists.linux.it/pipermail/gl-como/attachments/20110625/9030ae6a/attachment.pgp>


Maggiori informazioni sulla lista gl-como