Il 13 ottobre 2012 16:16, Alessandro T. <taglia...@yahoo.it> ha scritto:

[...]

> Innanzitutto non uso e spero di non dover mai usare ntfsundelete,

purtroppo sul computer al lavoro ho windows, e purtroppo ho fatto una
stronzata e mi sono cancellato tutti i file che avevo nella directory
dei documenti (e il backup? ecco... la stronzata l'ho fatta mentre
cercavo di fare una sincronizzazione della cartella con una cartella
sul mio serverino).

> Quindi sì: è possibile fare il tutto con un pipe se generi al volo
> "test_undelete.txt" e lo passi (via pipe ;-) ) ad awk.

purtroppo non ci sono riuscito, ma per ora non importa... ho fatto
quello che devo fare (ora devo rivedermi 13GB di dati recuperati).

> Il tutto nell'attesa dei tuoi script ;-)

Li allego immediatamente, tenendo in considerazione che io partivo da
una pendrive, con installato debian, e i tre script si trovavano nella
directory /root, da qui l'uso dei path assoluti nel lancio dei diversi
script.

breve escursus sulla soluzione che ho adottato:

1) lo script principale riceve in ingresso due parametri: la
partizione da recuperare e la directory dove devono essere riversati i
file recuperati (ntfs non modifica il device da recuperare).

2) lo script principale genera l'elenco dei file che devo recuperare
con ntfsundelete e passa questo elenco in pipe al secondo script
(script awk)

3) ho dovuto fare uno script awk separato, in quanto non riuscivo a
matchare il carattere "virgoletta singola", che mi mandava in errore
lo script bash.

4) lo script awk elabora solo i dati che possono essere recuperati
(secondo l'indicazione di ntfsundelete) e che hanno dimensione diversa
da 0, restituisce in output l'inode del file da recuperare, e il nome
del file ripulito da spazi virgolette singole e doppie e carattere $,
oltretutto al nome viene aggiunto il numero di riga dell'elenco dei
file da recuperare, in modo da rendere i nomi univoci e poter
recuperare anche file che hanno lo stesso nome.

5) metto il numero subito prima del primo punto, che si trova nel
nome, o in coda al nome, se non ci sono punti, per fare in modo che
rileggendo i possano essere considerati con l'ordine alfabetico
originale, e con l'estensione corretta.

6) i dati restituiti dallo script awk ritornano allo script
principale, che, sempre in pipe, attraverso xargs lo spedisce al terzo
script.

7) il terzo script non fa altro che richiamare ntfsundelete con gli
argomenti corretti per poter recuperare il file indicato, si è reso
necessario l'uso di un terzo script, perché non sono riuscito a
ordinare e inserire nella posizione corretta i parametri restituiti da
xargs, quindi richiamando uno script esterno, ho potuto usare gli
argomenti presi dalla linea di comando e riordinarli.

8) avevo provato ad usare una funzione interna, per evitare il terzo
script, ma non so per quale motivo bash continuava a darmi errori
sulla definizione della funzione.

spero che possa tornare utile a qualcun'altro, e che magari faccia da
base per qualcosa che riporti tutto in un unico script.

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

Attachment: recovery.sh
Description: Bourne shell script

Attachment: recupero_ntfs.awk
Description: Binary data

Attachment: recupero_ntfs.sh
Description: Bourne shell script

Reply via email to