[gl-como] Controllo file in scrittura

Carlo Filippetto carlo.target@tiscali.it
Sab 25 Giu 2011 18:59:07 CEST


Ma funziona anche nel caso devo attendere la fine di molti file?
In alcune dir attendo uno zip in altre devo crearlo da diversi file.

Con lsoft faccio la lista dei file, controllo non siano aperti
(lettura o scrittura che sia) attendo alcuni secondi e rifaccio il
check contando i file, se il conto torna vuol dire che il processo di
scrittura di file è terminato e zippo



Il 25/06/11, The Pirla<thepirla@interfree.it> ha scritto:
> 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
>

-- 
Inviato dal mio dispositivo mobile


Maggiori informazioni sulla lista gl-como