Trasferire grandi quantita’ di file alla max velocita’

Spostare molti files velocemente

Netcat per spostare grandi files

NETCAT

Con questo articolo iniziamo a presentare un ottimo tool che, almeno personalmente, e’ stato davvero utile in mille attivita’ sistemistiche, netcat.

Utilita’ 1
Vi è mai capitato di dover trasferire delle directory contenenti elevati quantitativi di files da un server Linux ad un altro ? In caso affermativo avrete sicuramente notato come, anche se il trasferimento avveniva in LAN, comunque la durata dell’operazione aumentava esponenzialmente con l’aumentare dei files da trasferire. Si tratta di un normale fenomeno di overhead dovuto al fatto che ogni singolo trasferimento di file avviene su un differente stream di dati, ed il numero di stream gestibili in contemporanea da un server è di solito piuttosto limitato.

Spesso si cerca di ovviare al problema creando prima un unico archivio .tar contenente i files da trasferire e quindi procedendo con un unico trasferimento. In questro caso si risolve egregiamente il problema di overhead di rete ma la cosa potrebbe diventare comunque problematica nel caso in cui ad esempio lo spazio su disco fosse limitato al punto da non poter consentire la creazione del tar temporaneo.
Se però il comando tar viene utilizzato in maniera intelligente assieme all’utility netcat, abbiamo la possibilità di effettuare comunque un traferimento super-veloce su un unico stream di dati senza la necessità di dover creare degli archivi temporanei. Ecco come possiamo procedere:
Sul server di destinazione (quello verso cui trasferiremo i nostri files), lanciamo il comando:

nc -l -p 888 | tar zxvPp   # il server di destinazione e' in ascolto sulla porta 888 pronto per decomprimere

Sul server master (quello da cui traferiamo i files), lanciamo il comando:

tar czvOPp --same-owner /<source_dir> | netcat -w 5 <ip_macchina_destinazione> 888

Queste due operazioni, effettuate in sequenza, fanno si che i files contenuti nella directory “/source/dir” del server master, vengano compressi in un tar che verrà inviato immediatamente (grazie alla pipe gestita con netcat) verso la porta 888 del server di destinazione. Quest’ultimo da parte sua è configurato per rimanere in ascolto sulla porta 888 e per redirezionare il flusso di dati ricevuto in ingresso direttamente al comando tar lanciato in modo da effettuare una decompressione nella directory “/target/dir” che avrete preventivamente creato ed in cui vi sarete spostati per ricevere il flusso di dati.

Gli usi di netcat sono davvero innumerevoli, tra cui aprire shell remote per lanciare comandi, scansioni di rete fin’anche alla clonazione di intere partizioni o addirittura di un’intera linux-box.
Tutto cio’ lo vedremo nei prossimi articoli su netcat.

#netcattoolmultiuso

Ripristinare file cancellati

Tutti gli strumenti visti nei precedenti articoli vengono utilizzati principalmente per recuperare files da dischi rovinati o prossimi alla rottura. Non sempre la causa dei nostri mal di testa e’ imputabile ad un guasto hardware ma spesso siamo noi stessi causa del nostro male. Un utente goffo, distratto o alle prime armi puo’ causarsi da solo la perdita di dati; che cosa fare in questi casi ?? Bisogna prima di tutto capire che quando viene cancellato un file  esso non viene eliminato fisicamente, piuttosto il filesystem lo “marca” come cancellato rendendo cosi’ disponibile alla scrittura di altri file la porzione di disco che questo occupava. Questo vuol dire che finche’ un’applicazione non usera’ quella porzione di disco il file sara’ comunque presente e’ recuperabile, per questo come gia’ accennato in un precedente articolo, se vi accorgete di aver cancellato qualcosa e’ importante ridurre al minimo possibile l’utilizzo del sistema fino a che non si sara’ tentato il recupero dei dati cancellati. Probabilmente , ad oggi, il tool OpenSource piu’ completo per questo genere di attivita’ e’ senz’altro PhotoRec , questo tool e’ in grado di andare a caccia dei formati di file immagine piu’ comuni ed inoltre e’ in grado di ripristinare file in molti altri formati quali : odf, pdf, 7zip, zip, tar, rpm, deb… ed anche dischi virtuali. Questa utility e’ in grado di funzionare su ogni tipologia di disco, inclusi hard disk, chiavette usb ed anche schede sdd. PhotoRec e’ anche in grado di recuperare file da partizioni che sono state formattate. Aggiungo che per quanto sia un tool da riga di comando PhotoRec  suddivide le operazioni di salvataggio in piccoli passi, proprio come farebbe un wizard grafico. Per avviare PhotoRec bastera’ il semplice comando :

  • sudo photorec

Appena avviato photorec  vi chiedera’, nel seguente ordine, queste informazioni :

  • selezionare il disco e la partizione che ospita i file cancellati # [No partition] per indicarle tutte
  • selezionare il tipo di filesystem
  • selezionare “Search” per recuperare tutti i file oppure “Opt” per selezionare le tipologie
  • selezionare i formati dei file che c’interessa recuperare dall’elenco proposto
  • selezionare la Directory in cui salvare i file recuperati

Il tempo impiegato dipendera’ ovviamente dalla grandezza della partizione selezionata e dalla quantita’ di file da recuperare. Una volta ultima l’operazione troverete nella cartella indicata in fase di avvio una quantita’ di file con nomi strani, questo perche’ PhotoRec nomina i file a suo modo man mano che li trova e lascia all’utente il compito di riordinarli.

** Leggi anche ( ” estraiamo i nostri dati ” )