A volte capita di dover trasferire un enorme quantitativo di file da un server ad un altro, peggio ancora se capita di dover “clonare un server“… Beh in questi casi possiamo cavarcela con poche istruzioni…
L’unico requisito è quello di avere l’accesso SSH a entrambe le macchine.
Utilizzeremo a tale scopo il comando scp di Linux che permette di effettuare copie sicure (per una lista completa di tutte le opzioni del comando scp date un’occhiata qui: http://linux.about.com/od/commands/l/blcmdl1_scp.htm)
Noi utilizzeremo le seguenti opzioni:
r = copia ricorsiva delle intere directories
C = compressione abilitata
p = conserva le opzioni di modifica, i tempi di accesso e le modalità del file originale
// Per copiare tutti i file nella directory httpdocs in una cartella della macchina remota scp -rpC /var/www/httpdocs/* remote_user@remote_domain:/var/www/httpdocs
// Per copiare solo i file .php scp -rpC /var/www/httpdocs/*.php remote_user@remote_domain:/var/www/httpdocs
Ovviamente dovrete sostituire remote_user e remote_domain rispettivamente con user e password del server di destinazione della copia.
Inoltre, se abbiamo la necessità di trasferire grosse quantità di dati tra i due server, probabilmente può essere comodo utilizzare anche il comando nohup.
Il comando nohup esegue un comando anche nel caso in cui la sessione SSH viene disconnessa o l’utente effettua un logout. Inoltre aggiungendo un ampersand (&) prima di premere il tasto invio il comando verrà eseguito in background e vi verrà restituito il prompt pronto all’uso.
nohup scp -rpC /var/www/httpdocs/* remote_user@remote_domain.com:/var/www/httpdocs &