Per caricare qualche immagine o un file di configurazione basta un programma FTP. Ma quando devi spostare migliaia di file, scaricare un sito intero o aggiornare solo ciò che è cambiato, la riga di comando è molto più rapida e affidabile. In questa guida vediamo i due strumenti classici, SCP e rsync, con esempi pronti da adattare.

Prima di tutto: ti serve davvero?

SCP e rsync passano attraverso SSH. Da noi l’accesso SSH è disponibile sulla porta 7530, con il nome utente del tuo account e l’indirizzo del server indicato nell’email di attivazione; il metodo consigliato è una chiave SSH aggiunta dal pannello.

Se ti serve solo trasferire file ogni tanto, probabilmente non ti serve: puoi usare un client come FileZilla con SFTP sulla porta 2300 e le credenziali di un account FTP, oppure FTPS sulla porta 2100. L’host da usare è l’indirizzo del server che trovi nell’email di attivazione o nell’area clienti. Le porte 21 e 22 sono chiuse: se ottieni un timeout, controlla per prima cosa la porta.

SCP e rsync diventano utili quando i file sono tanti, quando vuoi automatizzare, o quando stai già lavorando da terminale.

Prepara la connessione

Negli esempi usiamo i segnaposto tuoutente e server: sostituiscili con il nome utente del tuo account e l’indirizzo del server dell’email di attivazione. La porta è sempre la 7530. Per non riscriverli ogni volta, definisci un nome breve nel file ~/.ssh/config del tuo computer:

Host miosito
  HostName server
  Port 7530
  User tuoutente
  IdentityFile ~/.ssh/id_ed25519

Così puoi scrivere miosito: al posto di tutto il resto. Trovi i dettagli in Usare la chiave SSH sul tuo hosting.

SCP: copiare file come con cp

SCP funziona come il comando cp, con la differenza che una delle due posizioni è sul server. La sintassi è sempre scp ORIGINE DESTINAZIONE, dove un percorso remoto si scrive utente@server:percorso.

Dal tuo computer al server

scp -P 7530 logo.png tuoutente@server:domains/tuodominio.it/public_html/img/

Nota: con scp la porta si indica con la P maiuscola, mentre con ssh è minuscola. È uno degli errori più frequenti.

Con l’alias definito nel file di configurazione diventa:

scp logo.png miosito:domains/tuodominio.it/public_html/img/

Un percorso remoto che non inizia con / si intende relativo alla tua home sul server.

Dal server al tuo computer

scp miosito:domains/tuodominio.it/public_html/wp-config.php ./

Il ./ finale significa «nella cartella in cui mi trovo sul mio computer».

Cartelle intere

scp -r miosito:domains/tuodominio.it/public_html/wp-content/themes/mio-tema ./

L’opzione -r copia ricorsivamente tutto il contenuto.

SCP è perfetto per pochi file o una copia una tantum. Il suo limite: ricopia sempre tutto, e se la connessione cade a metà di un trasferimento grande devi ricominciare da capo.

rsync: copiare solo ciò che è cambiato

rsync confronta origine e destinazione e trasferisce solo le differenze. La prima volta copia tutto, le successive solo i file nuovi o modificati. Questo lo rende ideale per sincronizzare un sito, fare copie periodiche o riprendere un trasferimento interrotto.

rsync deve essere presente sia sul tuo computer sia sul server. Su Linux e macOS di solito c’è già (verifica con rsync --version); su Windows si usa tipicamente all’interno di WSL. Se sul server non risultasse disponibile, faccelo sapere con un ticket.

Scaricare un sito intero

rsync -avz miosito:domains/tuodominio.it/public_html/ ./copia-sito/
  • -a (archivio): copia ricorsivamente mantenendo date e permessi;
  • -v: mostra i file mentre li copia;
  • -z: comprime i dati durante il trasferimento.

Se non usi l’alias, la porta si passa così:

rsync -avz -e "ssh -p 7530" tuoutente@server:domains/tuodominio.it/public_html/ ./copia-sito/

La barra finale conta

È il dettaglio che confonde tutti, quindi merita una sezione a parte:

Comando Risultato
rsync -av cartella/ dest/ Copia il contenuto di cartella dentro dest.
rsync -av cartella dest/ Copia la cartella stessa, creando dest/cartella.

Caricare modifiche sul server

rsync -avz ./mio-tema/ miosito:domains/tuodominio.it/public_html/wp-content/themes/mio-tema/

Prova prima, sempre

Con -n (o --dry-run) rsync ti mostra cosa farebbe senza toccare nulla:

rsync -avzn ./mio-tema/ miosito:domains/tuodominio.it/public_html/wp-content/themes/mio-tema/

Usalo ogni volta che il comando scrive sul server, soprattutto con l’opzione successiva.

Specchio esatto con –delete

Di default rsync aggiunge e aggiorna, ma non cancella. Con --delete rimuove dalla destinazione i file che non esistono più nell’origine, ottenendo una copia identica:

rsync -avz --delete ./mio-tema/ miosito:domains/tuodominio.it/public_html/wp-content/themes/mio-tema/

È potente e pericoloso: una barra sbagliata o una cartella d’origine vuota e cancelli i file sul server. Mai --delete senza aver prima fatto un -n, e mai puntato sull’intera public_html di un sito con contenuti caricati dagli utenti.

Escludere file e cartelle

rsync -avz --exclude 'wp-content/cache/' --exclude '*.log' --exclude 'wp-config.php' \
  ./sito/ miosito:domains/tuodominio.it/public_html/

Escludere cache, log e file di configurazione evita di sovrascrivere impostazioni del server con quelle del tuo ambiente locale.

Riprendere un trasferimento interrotto

Per file molto grandi aggiungi --partial --progress: se la connessione cade, rilanciando lo stesso comando rsync riparte da dove si era fermato e ti mostra l’avanzamento.

SCP o rsync? Una tabella per decidere

Situazione Strumento
Un file o pochi file, una volta SCP (o SFTP con FileZilla)
Scaricare un sito intero rsync
Aggiornare spesso una cartella rsync
File molto grandi su connessione instabile rsync con --partial
Gestire versioni del codice Git

Un trucco per i siti grandi

Migliaia di file piccoli si trasferiscono lentamente uno per uno. Spesso conviene comprimerli sul server e scaricare un solo archivio:

ssh miosito "cd domains/tuodominio.it && tar -czf ~/sito.tar.gz public_html"
scp miosito:sito.tar.gz ./
ssh miosito "rm ~/sito.tar.gz"

Nota che l’archivio lo creiamo nella home, non dentro public_html, dove sarebbe scaricabile da chiunque. E lo cancelliamo subito dopo: archivi come .tar.gz e .zip occupano spazio e sono comunque esclusi dai backup automatici (vedi esclusioni dei backup).

E il database?

SCP e rsync copiano file, non database. Per esportare il database di un WordPress usa WP-CLI (wp db export) e poi scarica il file con scp. Se invece ti serve semplicemente una copia di sicurezza di file e database, i backup automatici sono già lì: puoi scaricarli o ripristinarli in autonomia dal pannello.

Se stai spostando un sito da un altro provider verso di noi, ricorda che per i nuovi clienti la migrazione del primo sito la facciamo noi gratuitamente, se richiesta prima dell’ordine.

Altri articoli su SSH, terminale e sviluppo

Parliamone

Un hosting che ti spiega le cose, e poi le fa

Questi articoli nascono dalle domande dei nostri clienti. Se vuoi un hosting dove dietro ogni risposta c’è un tecnico vero, parliamone.

  • 4,9 su 5 su Trustpilot264 recensioni, il 96% a cinque stelle
  • Risponde un tecnicoIn italiano, da chi gestisce i server
  • Il trasloco lo facciamo noiSito, database e posta, controllati prima di spostare i DNS