SCP comunemente noto come comando di copia sicura è uno strumento di utilità utilizzato dai sistemi Linux per copiare file e directory tra host nella rete. SSH viene utilizzato per trasferire file e autenticare gli utenti. Poiché sono necessarie le credenziali per accedere a un server remoto utilizzando ssh, in modo simile è necessario conoscere le credenziali degli host remoti durante l'esecuzione dei comandi SCP. Nell'articolo impareremo alcuni utili comandi SCP.
Copia file da un server all'altro
Per copiare un singolo file da un server all'altro della rete, utilizzare il comando seguente.
$ scp file.txt [email protected]:/root/Linuxways
Dove , file.txt è il nome del file, root è il nome utente dell'host remoto, 192.168.178.10 è l'indirizzo del server remoto e /root/Linuxways è la directory remota.
Trova lo stato della copia
Il comando Scp insieme all'opzione -v può essere utilizzato per mostrare lo stato della copia.
$ scp -v file [email protected]:/root/Linuxways
Uscita:
Conservazione degli attributi dei file
Una volta copiati file/cartelle sul server di destinazione, i file copiati assumeranno l'ultimo timestamp del server di destinazione. Usa il comando SCP con l'opzione -rvp per preservare gli attributi del file come permesso, timestamp.
$ scp -rvp file [email protected]:/root/Linuxways
Uscita :
Fonte:
Destinazione :
Nascondi output SCP
Gli output di Scp inclusi avvisi, errori e misuratore di avanzamento possono essere soppressi utilizzando SCP con l'opzione -q come:
$ scp -q file [email protected]:/root/Linuxways
Trasferisci file utilizzando una porta casuale
Il comando Scp con l'opzione -P può essere utilizzato per trasferire i file utilizzando una porta diversa da quella predefinita 22. Specificare la porta SSH dopo il comando -P ed eseguire il comando SCP come:
$ scp -P 4022 file [email protected]:/root/Linuxways
Dove 4022 è la porta SSH personalizzata dell'host remoto.
Utilizza una chiave di autenticazione invece della password
Se l'host remoto è configurato con l'autenticazione con chiave ssh anziché con una password, è necessario utilizzare il file della chiave ssh per accedere all'host remoto. Per trasferire i file/le directory, specifica il file della chiave ssh ed esegui il comando SCP con l'opzione -i come:
$ scp -i private.pem file [email protected]:/root/Linuxways
Dove private.pem è il file chiave per l'autenticazione del server remoto
Limita larghezza di banda
La larghezza di banda del trasferimento di file può essere limitata utilizzando il comando SCP con l'opzione -l. In questo esempio, ho una larghezza di banda limitata a 200 kbit/s
$ scp -l 200 centos-iso.tar.gz [email protected]:/root/Linuxways
Copia file da un host remoto
È possibile copiare file/cartelle su localhost da un server remoto utilizzando il comando SCP come:
$ scp [email protected]:/root/Linuxways/file .
Dove root è il nome utente della macchina remota 192.168.178.10, /root/Linuxways è la directory remota e . è la directory corrente nel server locale.
Uscita:
Il comando Scp con l'opzione -r può essere utilizzato per copiare directory dall'host remoto come:
$ scp -r [email protected]:/root/Linuxways .
Dove Linuxways è il nome della directory remota.
Uscita:
Trasferisci file basati solo su IPV4
Solo l'indirizzo IPV4 può essere utilizzato per contattare host remoti per trasferire file/directory utilizzando il comando SCP con l'opzione -4 come:
$ scp -4 file [email protected]:/root/Linuxways
Se è necessario utilizzare solo l'indirizzo IPV6, eseguire il comando SCP come:
$ scp -6 file [email protected]:/root/Linuxways
Disabilita il controllo rigoroso dei file
Il controllo rigoroso dei file durante la copia di file/cartelle dall'host remoto al server locale può essere disabilitato utilizzando il comando SCP con l'opzione -T come:
$ scp -T [email protected]:/root/Linuxways/documents.tar.gz .
Dove 192.168.178.10 è l'host remoto e documents.tar.gz è il nome del file.
Comprimi file/cartelle per un trasferimento più rapido
File/directory possono essere compressi utilizzando il comando SCP con l'opzione -C durante la copia su un server remoto. La compressione del file avviene a livello di rete ea destinazione, la dimensione del file sarà la stessa dell'origine.
$ scp -C centos.iso.tar.gz [email protected]:/root/Linuxways
Copia directory invece di file
Puoi copiare la directory invece dei singoli file separatamente usando il comando SCP con l'opzione -r come:
$ scp -r example [email protected]:/tmp
Dove esempio è il nome della cartella.
Copia più file
È possibile copiare più file su un server remoto utilizzando il comando SCP specificando il nome dei file come:
$ scp file file1 file2 file3 file4 [email protected]:/root/Linuxways
Dove file file1 file2 file3 e file4 è il nome del file.
Usa un altro codice per crittografare file/cartelle
Durante il trasferimento dei file, Linux utilizza l'algoritmo AES-128 per crittografare i file. È possibile utilizzare altri algoritmi di crittografia utilizzando il comando SCP con l'opzione -c. In questo esempio, ho usato la cifratura 3des-cbc per crittografare i file.
$ scp -c 3des-cbs file [email protected]:/root/Linuxways
Copia da remoto a host remoto
È possibile copiare file/directory da un host remoto (esempio host1) su un altro host remoto (host2) da localhost (host) come:
$ scp [email protected]:/root/Linuxways/file [email protected]:/root/Linuxways
Dove, 192.168.178.10 -> Host remoto (host1)
192.168.178.11 -> Host remoto (host2)
Conclusione
In questo articolo, abbiamo appreso alcuni utili comandi SCP per copiare file/cartelle tra host nella rete. Se hai suggerimenti e feedback, lascia un commento.