[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