[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