10 SCP-kommandoer til overførsel af filer/mapper i Linux


Linux-administratoren skal være bekendt med CLI-miljøet. Da GUI-tilstand i Linux-servere ikke er almindelig at installere. SSH er muligvis den mest populære protokol, der gør det muligt for Linux-administratoren at administrere serverne via fjernbetjeningen på en sikker måde. Indbygget med SSH-kommando er der SCP-kommando. SCP bruges til at kopiere fil (er) mellem servere på en sikker måde.

Nedenstående kommando læses som "kopiér kildefilnavn" til "destinations_mappe" på "destination_host" ved hjælp af "brugernavnskonto".

scp source_file_name [email _host:destination_folder

Der er mange parametre i SCP-kommandoen, som du kan bruge. Her er de parametre, der kan være nyttige ved daglig brug.

Angiv detaljerede oplysninger om SCP-processen ved hjælp af -v-parameteren

Grundlæggende SCP-kommando uden parameter kopierer filerne i baggrunden. Brugeren kan ikke se noget, medmindre processen er færdig, eller der vises en fejl. Du kan bruge parameteren “-v” til at udskrive fejlretningsoplysninger på skærmen. Det kan hjælpe dig med fejlretning af forbindelses-, godkendelses- og konfigurationsproblemer.

[email  ~/Documents $ scp -v Label.pdf [email :.
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

Giv ændringstider, adgangstider og tilstande fra originale filer

Parameteren “-p” hjælper dig med dette. En anslået tid og forbindelseshastigheden vises på skærmen.

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

Foretag filoverførsel hurtigere ved hjælp af -C parameter

En af de parametre, der kan hurtigere din filoverførsel, er parameteren "-C". Parameteren “-C” komprimerer dine filer på farten. Det unikke er, at komprimering kun sker i netværket. Når filen ankommer til destinationsserveren, vender den tilbage til den oprindelige størrelse som før komprimeringen fandt sted.

Se på disse kommandoer. Det bruger en enkelt fil på 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

Kopiering af fil uden “-C” -parameter resulterer i 1661,3 sekund. Yo kan sammenligne resultatet med kommandoen nedenfor, som bruger “-C” -parameteren.

[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
mrarian[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

Som du kan se, overføres processen, når du bruger kompression, på 162,5 sekund. Det er 10 gange hurtigere end ikke at bruge “-C” -parameteren. Hvis du kopierer mange filer over hele netværket, vil “-C” parameter hjælpe dig med at reducere den samlede tid, du har brug for.

Den ting, vi skal bemærke, at komprimeringsmetoden ikke fungerer på nogen filer. Når kildefilen allerede er komprimeret, finder du ingen forbedringer der. Filer som .zip, .rar, billeder og .iso-filer påvirkes ikke af parameteren “-C”.

Vælg en anden kryptering for at kryptere filer

SCP bruger som standard “AES-128” til at kryptere filer. Hvis du vil skifte til en anden kryptering for at kryptere den, kan du bruge parameteren “-c”. Se på denne kommando.

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

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

Ovenstående kommando fortæller SCP at bruge 3des-algoritmen til at kryptere filen. Vær opmærksom på, at denne parameter bruger “-c” ikke “-C”.

Begrænsning af båndbreddeforbrug

En anden parameter, der kan være nyttig, er “-l” parameter. Parameteren “-l” begrænser den båndbredde, der skal bruges. Det vil være nyttigt, hvis du laver et automatiseringsscript for at kopiere en masse filer, men du ikke ønsker, at båndbredden drænes af SCP-processen.

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

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

400-værdien bag “-l” -parameteren betyder, at vi kun begrænser båndbredden til SCP-processen 50 KB/sek. En ting at huske, at båndbredde er angivet i Kilobits/sek (kbps). Det betyder, at 8 bits er lig med 1 byte.

Mens SCP tæller i Kilobyte/sek (KB/s). Så hvis du kun vil begrænse din båndbredde til SCP maksimalt 50 KB/s, skal du indstille den til 50 x 8 = 400.

Angiv specifik port, der skal bruges med SCP

Normalt bruger SCP port 22 som standardport. Men af sikkerhedsmæssige årsager kan du ændre havnen til en anden havn. For eksempel bruger vi port 2249. Derefter skal kommandoen være sådan.

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

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

Sørg for, at den bruger store bogstaver "P" og ikke "p", da "p" allerede bruges til bevarede tider og tilstande.

Kopier filer i biblioteket rekursivt

Nogle gange er vi nødt til at kopiere bibliotek og alle filer/mapper inde i det. Det vil være bedre, hvis vi kan gøre det i en kommando. SCP understøtter dette scenario ved hjælp af parameteren "-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

Når kopiprocessen er færdig, finder du på destinationsserveren et bibliotek med navnet "dokumenter" med alle dets filer. Mappen “dokumenter” oprettes automatisk.

Deaktiver statusmåler og advarsel/diagnosticeringsmeddelelse

Hvis du vælger ikke at se statusmåler og advarsels-/diagnosticeringsmeddelelser fra SCP, kan du deaktivere det ved hjælp af parameteren "-q". Her er eksemplet.

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

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

Som du kan se, efter at du har indtastet adgangskoden, er der ingen oplysninger om SCP-processen. Når processen er afsluttet, vil du se en prompt igen.

Kopier filer ved hjælp af SCP via Proxy

Proxy-server bruges normalt i kontormiljø. Nativt er SCP ikke proxy konfigureret. Når dit miljø bruger proxy, skal du “fortælle” SCP at kommunikere med proxyen.

Her er scenariet. Proxyadressen er 10.0.96.6 og proxyporten er 8080. Proxyen implementerede også brugergodkendelse. Først skal du oprette "~/.ssh/config" -fil. For det andet placerer du denne kommando inde i den.

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

Derefter skal du oprette filen “~/.ssh/proxyauth”, som indeholder.

myusername:mypassword

Derefter kan du gøre SCP transparent som normalt.

Bemærk, at proptrækker muligvis ikke er installeret endnu på dit system. På min Linux Mint skal jeg først installere den ved hjælp af standard Linux Mint installationsprocedure.

$ apt-get install corkscrew

For andre yum-baserede systemer kan brugerne installere proptrækker ved hjælp af følgende yum-kommando.

# yum install corkscrew

En anden ting, da "~/.ssh/proxyauth" -fil indeholder dit "brugernavn" og "adgangskode" i klart tekstformat, skal du sørge for, at filen kun er tilgængelig for dig.

Vælg en anden ssh_config-fil

For mobilbrugere, der ofte skifter mellem virksomhedsnetværk og offentligt netværk, er det lider at altid ændre indstillinger i SCP. Det er bedre, hvis vi kan placere en anden ssh_config-fil, der passer til vores behov.

Proxy bruges i virksomhedsnetværk, men ikke i offentligt netværk, og du skifter regelmæssigt netværk.

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

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

Som standard placeres "ssh_config" -fil pr. Bruger i "~/.ssh/config". Oprettelse af en bestemt "ssh_config" -fil med proxy-kompatibel gør det nemmere at skifte mellem netværk.

Når du er på virksomhedsnetværk, kan du bruge parameteren “-F”. Når du er på det offentlige netværk, kan du springe parameteren “-F” over.

Det handler kun om SCP. Du kan se SCP-mandsider for flere detaljer. Du er velkommen til at efterlade kommentarer og forslag.