Leggi le ultime novità dal web

Come trasferire file e cartelle tra due server Linux via ssh

In questi giorni sto configurando il nuovo server dedicato che ospiterà Forexinfo.it e Sololibri.net a partire dalle prossime settimane: i due siti hanno aumentato il loro traffico e Forexinfo in particolare va verso il traguardo dei 5 milioni di pagine viste nel 2013, una nuova infrastruttura più potente e con maggiore banda è necessaria per garantire la buona fruizione del sito da parte degli utenti.

La parte più seccante quando si trasferiscono siti web di grandi dimensioni è il trasferimento dei files e del database dal vecchio al nuovo server: si tratta di migliaia di files, alcuni molto grandi (ex. il db) e scaricare tutto sul pc usando ftp e phpmyadmin per poi caricare a mano sul server è una soluzione che arriverebbe a richiedere ore o giorni per il trasferimento.

La soluzione è quindi quella di far transitare i files direttamente tra i due server, velocizzando così di molto l’intero processo.

Trasferire file e cartelle tra due server con il comando scp

Nel nostro caso tutti e due i server sono equipaggiati con linux debian 6 "squeeze" ma la soluzione proposta è valida per un’ampia gamma di sistemi operativi e funziona anche tra computer con os diversi.

Attraverso una connessione ssh (a uno dei due server, nel nostro caso quello di destinazione) è possibile lanciare il comando scp che consente di trasferire singoli file o intere cartelle (e sottocartelle) tra la macchina corrente (il server a cui ci connettiamo via ssh) e la macchina remota (quella con i file da trasferire).

Ecco la sintassi del comando:

scp -rpC nomeutente@222.222.222.222:/percorso/cartella-sorgente/ /cartella-di-destinazione/

dove:

  • nomeutente è l’user con cui accedere sulla macchina remota (NB: questo utente deve avere accesso ftp ai file da trasferire).
  • 222.222.222.222 è l’IP della macchina remota (quella con i file da prendere).
  • /percorso/cartella-sorgente/ è il path della cartella da prendere sulla macchina remota.
  • /percorso/cartella-di-destinazione/ è il path in cui la cartella verrà copiata sulla macchina corrente.

Basta lanciare il comando e, se tutto è ok, ci verrà chiesta la password dell’utente e una volta inserita inizieremo a vedere l’elenco dei files trasferiti.

Occhio alla porta: il comando cercherà di collegarsi di default attraverso la porta 22, nel nostro caso i server sono configurati per accettare la connessione ssh su una porta diversa (per questioni di sicurezza), abbiamo dovuto quindi aggiungere l’istruzione -P numeroporta per evitare di ottenere l’errore:

ssh: connect to host 222.222.222.222 port 22: Connection refused

Buon trasferimento!

New Com Web Srls - Via Valle Scrivia, 14 - 00141 Roma - C.F./P.Iva 13586351002 - REA: RM-1458775
Informativa sulla Privacy | Contatti