lunedì 19 maggio 2014

Usare il comando tar attraverso una sessione SSH

Mi chiedevo se era possibile effettuare una copia del il contenuto di più cartelle, su un computer remoto, senza dover creare un file temporaneo sul file system locale.

Spesso mi capita di procedere in questo modo:
  • creo un archivio di backup in locale
  • invio l'archivio al server remoto (es. tramite ftp)
  • cancello l'archivio dal file system locale

    Questo modo di procedere può comportare qualche problema, soprattutto se stiamo parlando di sistemi con risorse limitate:
  • possibilità di saturare lo spazio locale (con possibilità di corrompere tutto il file system)
  • lentezza nella creazione del archivio di backup (tipicamente quando tentiamo di risparmiare spazio effettuando la compressione dell'archivio da un processore poco potente)

    Sarebbe opportuno poter leggere i file dal disco locale e mandarli direttamente sul server remoto senza passare da un file di archivio intermedio.

    Come al solito un po' di ricerca nel web e il problema è risolto!

    Questo comando permette di copiare il contenuto della cartella /home/app nel file /tmp/backup.tar.gz sul sistema remoto 192.168.1.1; l'accesso al computer remoto viene effettuato usando l'account root (la password verrà chiesta successivamente).
    La prima versione comprime l'archivio primo di inviarlo al server. La seconda versione, richiede più banda di comunicazione, ma permette di comprimere l'archivio utilizzando le risorse di processamento del server.

    Opzioni del comando tar:
  • z - crea un archivio gzip
  • c - crea un nuovo archvio
  • v - verbosity
  • f - usa un archivio (- significa stdout)
  • Nessun commento:

    Posta un commento