Pagine

6 giugno 2011

Netcat e tar per copiare file in rete comprimendoli e decomprimendoli al volo.

Oggi vediamo un  trucco che può risultare molto comodo a coloro i quali devono trasferire file tra due sistemi operativi unix like. Personalmente uso questa tecnica molto frequentemente tra OSX e Linux. Il tutto verrà fatto col comodissimo netcat.

Quello che vogliamo ottenere è copiare i file di una directory da un server ad un altro eseguendo una compressione prima dell'invio e una decompressione subito dopo la ricezione.

Per prima cosa si deve predisporre il server di destinazione in ascolto:
nc -l 8888 | tar xzvf -

Con questo comando diciamo al nostro destinatario di aprire in ascolto tramite netcat la porta 8888 e di decoprimere nella directory corrente mediante tar tutto il contentuto proveniente dallo standard input (-).

Il server mittente deve invece fare il lavoro inverso e deve conoscere anche l'IP della macchina di destinazione:
tar czvf - <directory> | nc <ip_destinatario> 8888
Con questo comando diciamo al mittente di comprimere mediante tar la <directory> e di inviare il flusso compresso allo standard output (-) che viene raccolto da netcat e instradato verso la porta 8888 dell'<ip_destinatario>.

Un semplicissimo trucco, uno dei tanti linux tips che ci semplificano le operazioni quotidiane.

Nessun commento:

Posta un commento