10 ordres SCP per transferir fitxers/carpetes a Linux


Els administradors de Linux haurien d'estar familiaritzats amb l'entorn CLI. Com que el mode GUI als servidors Linux no és habitual instal·lar-se. SSH pot ser el protocol més popular per permetre als administradors de Linux gestionar els servidors de manera remota segura. Incorporat amb l'ordre SSH, hi ha l'ordre SCP. SCP s'utilitza per copiar fitxers entre servidors d'una manera segura.

[ També us pot agradar: Com protegir i endurir el servidor OpenSSH ]

L'ordre següent es llegirà com a \copia nom_fitxer_origen a carpeta_destinació a amfitrió_destinació mitjançant compte de nom d'usuari.

scp source_file_name [email _host:destination_folder

Hi ha molts paràmetres a l'ordre SCP que podeu utilitzar. Aquests són els paràmetres que es poden utilitzar en l'ús diari.

Proporcioneu la informació detallada del procés SCP mitjançant el paràmetre -v

L'ordre bàsica SCP sense paràmetres copiarà els fitxers en segon pla. Els usuaris no veuran res tret que s'acabi el procés o aparegui algun error.

Podeu utilitzar el paràmetre -v per imprimir la informació de depuració a la pantalla. Pot ajudar-vos a depurar problemes de connexió, autenticació i configuració.

[email  ~/Documents $ scp -v Label.pdf [email @202.x.x.x:.
Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -t .
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.
debug1: Connection established.
debug1: Host '202.x.x.x' is known and matches the RSA host key.
debug1: Found key in /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Next authentication method: password
[email 's password:
debug1: Authentication succeeded (password).
Authenticated to 202.x.x.x ([202.x.x.x]:22).
Sending file modes: C0770 3760348 Label.pdf
Sink: C0770 3760348 Label.pdf
Label.pdf 100% 3672KB 136.0KB/s 00:27
Transferred: sent 3766304, received 3000 bytes, in 65.2 seconds
Bytes per second: sent 57766.4, received 46.0
debug1: Exit status 0

Proporcioneu temps de modificació, temps d'accés i modes dels fitxers originals

El paràmetre -p us ajudarà amb això. A la pantalla apareixerà un temps estimat i la velocitat de connexió.

[email  ~/Documents $ scp -p Label.pdf [email :.
[email 's password:
Label.pdf 100% 3672KB 126.6KB/s 00:29

Feu que la transferència de fitxers sigui més ràpida mitjançant el paràmetre -C

Un dels paràmetres que pot accelerar la transferència de fitxers és el paràmetre -C. El paràmetre -C comprimirà els vostres fitxers sobre la marxa. L'únic és que la compressió només passa a la xarxa. Quan el fitxer hagi arribat al servidor de destinació, tornarà a la mida original com abans de la compressió.

Fes una ullada a aquestes ordres. Està utilitzant un únic fitxer de 93 Mb.

[email  ~/Documents $ scp -pv messages.log [email :.
Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -p -t .
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.
debug1: Connection established.
debug1: identity file /home/pungki/.ssh/id_rsa type -1
debug1: Found key in /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Trying private key: /home/pungki/.ssh/id_rsa
debug1: Next authentication method: password
[email 's password:
debug1: Authentication succeeded (password).
Authenticated to 202.x.x.x ([202.x.x.x]:22).
debug1: Sending command: scp -v -p -t .
File mtime 1323853868 atime 1380425711
Sending file timestamps: T1323853868 0 1380425711 0
messages.log 100% 93MB 58.6KB/s 27:05
Transferred: sent 97614832, received 25976 bytes, in 1661.3 seconds
Bytes per second: sent 58758.4, received 15.6
debug1: Exit status 0

Si copieu fitxers sense el paràmetre -C, tindran com a resultat 1661,3 segons. Podeu comparar el resultat amb l'ordre a continuació, utilitzant el paràmetre -C.

[email  ~/Documents $ scp -Cpv messages.log [email :.
Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -p -t .
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.
debug1: Connection established.
debug1: identity file /home/pungki/.ssh/id_rsa type -1
debug1: Host '202.x.x.x' is known and matches the RSA host key.
debug1: Found key in /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Next authentication method: publickey
debug1: Trying private key: /home/pungki/.ssh/id_rsa
debug1: Next authentication method: password
[email 's password:
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (password).
Authenticated to 202.x.x.x ([202.x.x.x]:22).
debug1: channel 0: new [client-session]
debug1: Sending command: scp -v -p -t .
File mtime 1323853868 atime 1380428748
Sending file timestamps: T1323853868 0 1380428748 0
Sink: T1323853868 0 1380428748 0
Sending file modes: C0600 97517300 messages.log
messages.log 100% 93MB 602.7KB/s 02:38
Transferred: sent 8905840, received 15768 bytes, in 162.5 seconds
Bytes per second: sent 54813.9, received 97.0
debug1: Exit status 0
debug1: compress outgoing: raw data 97571111, compressed 8806191, factor 0.09
debug1: compress incoming: raw data 7885, compressed 3821, factor 0.48

Com podeu veure, quan utilitzeu la compressió, el procés de transferència es fa en 162,5 segons. És 10 vegades més ràpid que no utilitzar el paràmetre -C. Si copieu molts fitxers a la xarxa, el paràmetre -C us ajudaria a reduir el temps total que necessiteu.

El que hem de notar és que el mètode de compressió no funcionarà en cap fitxer. Quan el fitxer font ja està comprimit, no hi trobareu cap millora. Els fitxers com ara .zip, .rar, imatges i fitxers .iso no es veuran afectats pel paràmetre -C.

Canvieu el xifratge SCP per xifrar fitxers

Per defecte, SCP utilitza AES-128 per xifrar fitxers. Si voleu canviar a un altre xifratge per xifrar-lo, podeu utilitzar el paràmetre -c. Fes una ullada a aquesta comanda.

[email  ~/Documents $ scp -c 3des Label.pdf [email :.

[email 's password:
Label.pdf 100% 3672KB 282.5KB/s 00:13

L'ordre anterior indica a SCP que utilitzi l'algorisme 3des per xifrar el fitxer. Aneu amb compte que aquest paràmetre utilitza -c no -C.

Limitació de l'ús d'ample de banda amb l'ordre SCP

Un altre paràmetre que pot ser útil és el paràmetre -l. El paràmetre -l limitarà l'ample de banda a utilitzar. Serà útil si feu un script d'automatització per copiar molts fitxers, però no voleu que l'ample de banda s'esgoti pel procés SCP.

[email  ~/Documents $ scp -l 400 Label.pdf [email :.

[email 's password:
Label.pdf 100% 3672KB 50.3KB/s 01:13

El valor 400 darrere del paràmetre -l vol dir que limitem l'amplada de banda del procés SCP a només 50 KB/s. Una cosa a recordar és que l'ample de banda s'especifica en kilobits/s (kbps). Vol dir que 8 bits són iguals a 1 byte.

Mentre que SCP compta en Kilobyte/s (KB/s). Per tant, si voleu limitar l'amplada de banda per a SCP com a màxim de només 50 KB/s, heu de configurar-lo en 50 x 8 = 400.

Especifiqueu el port específic que voleu utilitzar amb SCP

Normalment, SCP utilitza el port 22 com a port predeterminat. Però per motius de seguretat, podeu canviar el port per un altre. Per exemple, estem utilitzant el port 2249. Aleshores, l'ordre hauria de ser així.

[email  ~/Documents $ scp -P 2249 Label.pdf [email :.

[email 's password:
Label.pdf 100% 3672KB 262.3KB/s 00:14

Assegureu-vos que utilitza P majúscula i no p, ja que p ja s'utilitza per a temps i modes conservats.

Copieu fitxers dins del directori de manera recursiva

De vegades hem de copiar el directori i tots els fitxers/directoris dins. Serà millor si ho podem fer en 1 comanda. SCP admet aquest escenari mitjançant el paràmetre -r.

[email  ~/Documents $ scp -r documents [email :.

[email 's password:
Label.pdf 100% 3672KB 282.5KB/s 00:13
scp.txt 100% 10KB 9.8KB/s 00:00

Un cop finalitzat el procés de còpia, al servidor de destinació trobareu un directori anomenat \documents amb tots els seus fitxers. La carpeta \documents es crea automàticament.

Desactiveu el mesurador de progrés i el missatge d'avís/diagnòstic

Si trieu no veure el mesurador de progrés i els missatges d'avís/diagnòstic de SCP, podeu desactivar-lo mitjançant el paràmetre -q. Aquí teniu l'exemple.

[email  ~/Documents $ scp -q Label.pdf [email :.

[email 's password:
[email  ~/Documents $

Com podeu veure, després d'introduir la contrasenya, no hi ha informació sobre el procés SCP. Quan s'hagi completat el procés, tornarà a veure un missatge.

Copieu fitxers mitjançant SCP mitjançant Proxy

El servidor intermediari s'utilitza normalment a l'entorn d'oficina. De manera nativa, SCP no està configurat com a proxy. Quan el vostre entorn utilitza un servidor intermediari, heu de \indicar a SCP que es comuniqui amb el servidor intermediari.

Aquí teniu l'escenari. L'adreça del servidor intermediari és 10.0.96.6 i el port del servidor intermediari és 8080. El servidor intermediari també va implementar l'autenticació d'usuari. Primer, heu de crear el fitxer ~/.ssh/config. En segon lloc, poseu aquesta comanda dins.

ProxyCommand /usr/bin/corkscrew 10.0.96.6 8080 %h %p ~/.ssh/proxyauth

Aleshores, heu de crear el fitxer ~/.ssh/proxyauth que conté.

myusername:mypassword

Després d'això, podeu fer SCP de manera transparent com de costum.

Tingueu en compte que és possible que el llevataps encara no estigui instal·lat al vostre sistema. Al meu Linux Mint, primer he d'instal·lar-lo, utilitzant el procediment d'instal·lació estàndard de Linux Mint.

$ apt-get install corkscrew

Per a altres sistemes basats en yum, els usuaris poden instal·lar un llevataps mitjançant la següent comanda yum.

# yum install corkscrew

Una altra cosa és que com que el fitxer ~/.ssh/proxyauth conté el vostre nom d'usuari i contrasenya en format de text clar, assegureu-vos que només podeu accedir al fitxer.

Seleccioneu un fitxer ssh_config diferent

Per als usuaris mòbils que sovint canvien entre les xarxes de l'empresa i les xarxes públiques, patirà canviar sempre la configuració a SCP. És millor si podem posar un fitxer ssh_config diferent per satisfer les nostres necessitats.

El proxy s'utilitza a la xarxa de l'empresa, però no a la xarxa pública i canvieu de xarxa regularment.

[email  ~/Documents $ scp -F /home/pungki/proxy_ssh_config Label.pdf

[email :.
[email 's password:
Label.pdf 100% 3672KB 282.5KB/s 00:13

Per defecte, el fitxer ssh_config per usuari es col·locarà a ~/.ssh/config. La creació d'un fitxer ssh_config específic amb compatibilitat amb proxy farà que sigui més fàcil canviar entre xarxes.

Quan esteu a la xarxa de l'empresa, podeu utilitzar el paràmetre -F. Quan esteu a una xarxa pública, podeu saltar el paràmetre -F.

[També us pot agradar: Pscp: transferir/copiar fitxers a diversos servidors Linux utilitzant un sol Shell ]

Això és tot sobre SCP. Podeu veure les pàgines man de SCP per obtenir més detalls. Si us plau, no dubteu a deixar comentaris i suggeriments.