[Python] Proof of concept per un programma di scansione duplicati.

Gollum1 gollum1.smeagol1 a gmail.com
Dom 15 Set 2013 17:32:54 CEST


RIprendo questo post, mi trovo finalmente nella necessità di dover
accedere a tutti quei dati, quindi sono spronato a realizzare qualcosa
di utile.

fatto un punto della situazione, e letto i vostri interventi mi sono
convinto di realizzare la seguente struttura:

1) Deamon di scansione:
   -) sempre attivo, attivato al boot in caso di shutdown o crash)
   -) file di configurazione con specifiche di include/esclude dir
   -) deve naturalmente escludere il proprio DB in modo automatico.
   -) deve accorgersi di modifiche al filesystem, se un file
scansionato è stato modificato, lo deve scansionare nuovamente.
   -) dopo la prima scansione totale, rimane praticamente in attesa
solo delle modifiche al filesystem.
   -) alternativa: eseguire una scansione periodica una volta ogni tot
tempo (più veloce, non ricalcola tutti gli md5)
   -) registra in un DB postgreSQL i dati reperiti:
      -) Nome e path del file (varie funzioni di python os e sys)
      -) creation time
      -) modification time
      -) tipologia di file (esecuzione del comando unix "file" o il
corrispettivo, se esiste, python).
      -) link alla tabella di incrocio dei duplicati.

2) django per l'interfaccia utente:
   -) utilizzare il server interno a django
   -) non è necessario che sia un deamon, viene lanciato dall'utente
in shell (ssh sul server) e poi ci si connette con il browser
   -) possibilità di navigare nelle copie e di visualizzarne il
contenuto (mime?) suddividendole con query apposite.
   -) marcatura dei file per la cancellazione

3) deamon di cancellazione:
   -) interrogazione periodica del DB per trovare i file segnati come
da cancellare
   -) eseguire la cancellazione effettiva dei file marcati.
   -) cancellazione automatica delle directory svuotate.

forse il secondo deamon (cancellazione) è superfluo, potrebbe essere
fato in tempo reale da django, ma la cosa potrebbe anche comportare
uno stop dell'interfaccia fino al completamento della cancellazione...
invece l'uso del deamon renderebbe anche la cancellazione un fattore
di background.

pericoli? possibilità di cancellare per errore file che non si
vogliono cancellare? (direi che nel caso di duplicati, si imponga che
almeno una copia rimanga e non possa essere selezionata per la
cancellazione, mentre se non ci sono duplicati, il file non si può
selezionare per la cancellazione).



ora, il punto di partenza:

i due deamon, devono essere due programmi a parte, o fare parte del
progetto django? (se ho capito bene come si generano i deamon, si
tratta solamente di un fork di un programma, con la successiva
chiusura del processo padre, il che lascia il processo figlio in
eredità a init, fino alla sua conclusione, è sufficiente che questa
non avvenga mai, giusto?)

Marco Beri, dove trovo il tuo libro su django in formato
elettronico/epub (attualmente sono completamente a digiuno di django)?

Byez
-- 
Gollum1
Tesssssoro, dov'é il mio tessssoro...


Maggiori informazioni sulla lista Python