scp
permette di postare file come se operassimo con un pendrive.
Facciamo un po' di chiarezza.scp
è un comando del pacchetto ssh
dedicato a copiare file e directory verso (o da) server e computer remoti.
Per chi usa le shell in ambienti *NIX è l'equivalente del comando cp
.
Esistono utility grafiche che rendono più facile l'uso soprattutto nel mondo Windows dove non troviamo nativamente il pacchetto SSH.
Questo comando offre tutti i vantaggi di SSH:
- connessione criptata;
- autenticazione con account e\o con chiavi digitali;
- è piuttosto veloce.
Prima di passare al pratico vediamo lo scenario in cui operiamo.
Nella conclusione alcune considerazioni
Scenario
Pensiamo alla seguente situazione:
- abbiamo un computer, accessibile via internet, a Milano equipaggiato con Linux Mint (hostname: milano.example.com );
- siamo a Roma e abbiamo un computer con Linux Mint (hostname: roma.example.com );
- abbiamo dei file da copiare da\su Milano.
Uso
Siamo a Roma, sul computer roma.example.com, e dobbiamo copia dei file da\su Milano, sul computer milano.example.com .
Il computer roma.example.com, è equipaggiato con Linux Mint.
1. Copia di un file
Vogliamo copiare il file caso1R.odt
, presente in /home/userroma/Documenti
, sul computer a Milano nella posizione /home/usermilano/Documenti/DaRoma
:
scp -C /home/userroma/Documenti/caso1R.odt
Viceversa ora vogliamo copiare il file caso1M.odt
, presente in /home/usermilano/Documenti
a Milano, sul proprio computer nella posizione /home/userroma/Documenti/DaMilano
:
scp -C
L'opzione -C
è opzionale. Istruisce scp
a comprimere il traffico. È utile quando trasferiamo quantità rilevanti di dati.
2. Copia di una directory
Vogliamo, ora, fare un'operazione simile alla precedente, ma copiando un'intera cartella, contenuto incluso.
Iniziamo copiando la cartella caso2R
, presente in /home/userroma/Documenti/caso2R
, sul computer a Milano nella posizione /home/usermilano/Documenti/DaRoma
:
scp -rC /home/userroma/Documenti/caso2R
Viceversa ora copiamo la cartella caso2M
, presente in /home/usermilano/Documenti
a Milano, sul proprio computer nella posizione /home/userroma/Documenti/DaMilano
:
scp -rC
3. Copia ricorsiva
Abbiamo già usato sopra l'opzione -r
. Essa istruisce scp
a copiare in modo ricorsivo. Sopra è stata necessaria per copia tutto il contenuto della cartella. Ora poniamoci l'obbiettivo di vole copiare l'intera cartella Documenti
.
Iniziamo copiando la cartella Documenti
, presente in /home/userroma
, sul computer a Milano nella posizione /home/usermilano/Documenti/DaRoma
:
scp -rC /home/userroma/Documenti
Viceversa ora copiamo la cartella Documenti
, presente in /home/usermilano
a Milano, sul proprio computer nella posizione /home/userroma/Documenti/DaMilano
:
scp -rC
Conclusione
Le opzioni ed i casi qui presentati sono semplici. scp
ha svariate opzioni che ne modificano il comportamento per farlo correttamente dialogare con il destinatario. Possiamo elencare tra gli aspetti di merito e di difficoltà:
- applicazione e protocollo disponibile per tutti i sistemi operativi. Ciò significa che possiamo tranquillamente copiare tra computer e server completamente differenti;
- i trasferimenti sono totalmente criptati e le autenticazioni sono tramite chiavi cifrate (usa i meccanismi di
ssh
); - per molti ambienti *NIX è presente di serie;
- le copie sono veloci perché aggiunge poco overhead. Se aggiungiamo l'opzione
-C
le performance vengono massimizzate; - se abbiamo salvato le chiavi di autenticazione (con
ssh-copy-id
) il trasferimento è automatico, sicuro e non viene chiesta nessuna password; - facilmente integrabile in eventuali script, magari per creare copie automatiche di backup.
Di contro rileviamo:
- la sintassi non è semplice soprattutto per i principianti;
- manca un tool grafico nativo, anche se esistono estensioni soprattutto per il mondo Windows;
- non permette di /vedere dall'altra parte/, ovvero dobbiamo conoscere prima i nomi dei file e i path;
- in alcuni ambienti, come quelli Windows, non è di serie.