16 Almindelige SCP-kommandoer med eksempler til kopiering af filer og mapper

SCP er tæt beslægtet med SSH-protokollen og blev faktisk født ud fra den samme idé.

SCP sørger for, at data forbliver fortrolige og umanipulerede under transit som en udvidelse af SSH-protokollen.

Lad os først forstå, hvordan denne SCP fungerer, og så vil vi se scp-kommandoerne.

Hvad er SCP?

SCP står for Secure Copy Protocol.

Det er en sikker og effektiv metode til at kopiere filer og mapper mellem lokale og eksterne værter eller mellem to fjernværter.

Det er meget brugt til sikker overførsel af data over et netværk. SCP er afhængig af SSH (Secure Shell) til at etablere en sikker forbindelse og kryptere dataene under transit.

Uanset om du skal flytte en enkelt fil eller en hel mappe, tilbyder SCP en pålidelig løsning til fjernoverførsler af fil.

Hvordan virker SCP?

SCP er bygget oven på SSH-protokollen – som er en kryptografisk netværksprotokol til sikker fjernlogin og kommandoudførelse. Den bruger de samme sikkerhedsmekanismer som SSH, inklusive kryptering og autentificering, for at beskytte data under transmission.

Når du bruger SCP, starter en bruger en kopikommando på deres lokale maskine, der angiver kildefilen og destinationsplaceringen på en fjernmaskine. SCP etablerer en SSH-forbindelse til fjernsystemet og kopierer derefter filerne sikkert fra kilden til destinationen.

Hvornår skal man bruge SCP?

SCP er især nyttig i følgende scenarier.

Fjernserver backup

SCP giver dig mulighed for at sikkerhedskopiere filer fra en ekstern server til din lokale maskine eller omvendt, hvilket sikrer dataredundans og katastrofegendannelse.

Implementering af applikationer

Det forenkler også processen ved sikkert at kopiere nødvendige filer til hvert målsystem, når applikationer implementeres på tværs af flere servere,

Overførsel af store filer

SCP tilbyder en pålidelig og sikker alternativ metode til at overføre data for store filer, der kan være for store til at sende som e-mail-vedhæftede filer.

Sikker fildeling

SCP sørger for, at data holdes krypteret under hele transit, mens der sendes fortrolige filer til andre personer.

  Sådan downloader du torrents på en Chromebook

Fjernsamarbejde

SCP kan bruges til at dele filer sikkert med samarbejdspartnere eller teammedlemmer på forskellige steder.

SCP kommandosyntaks

Før vi går i gang med, hvordan man bruger SCP-kommandoen, lad os starte med at forstå den grundlæggende syntaks.

SCP-kommandosyntaksen ser sådan ud:

scp [options] [source] [destination]

Forklaring af syntaks

Muligheder

Disse er valgfrie flag, der ændrer adfærden for SCP-kommandoen. Du kan bruge forskellige muligheder til at tilpasse overførselsprocessen. Her er nogle almindelige muligheder:

-r: Kopierer mapper og deres indhold rekursivt.
-p: Bevar den originale fils tilladelser, tidsstempler og tilstande.
-P: Angiver portnummeret for SSH-forbindelsen.
-i: Angiver den private nøglefil til SSH-godkendelse.
-C: Brug komprimering til at fremskynde dataoverførsel.
-l: Begræns den båndbredde, der bruges til overførslen (i Kbit/s).
-v: Udførlig tilstand – viser fejlfindingsmeddelelser under overførsel.
-o: Sender en mulighed til SSH-klienten. Det kan bruges til at deaktivere streng kontrol af værtsnøgler.

Kilde

Kilden angiver den fil eller mappe, du vil kopiere. Det kan være en lokal sti eller en fjern sti – afhængigt af konteksten.

Bestemmelsessted

Destinationen angiver, hvor du vil kopiere kilden. Ligesom kilden kan det også være en lokal sti eller en fjern sti.

Eksempler på kommandoer

#1. Kopier en fil fra lokal til ekstern server

scp /path/to/local/file.txt user@remotehost:/path/to/destination/

/path/to/local/file.txt: Dette er kildefilen, du vil kopiere fra din lokale maskine.

bruger@fjernvært: Erstat brugeren med fjernbrugerens navn og fjernværten med værtsnavnet eller IP-adressen på fjernserveren.

/sti/til/destination/: Dette er destinationsstien på den eksterne server, hvor filen vil blive kopieret.

Eksempel

I mit tilfælde har jeg valgt en ekstern server til overførsel af filen.

Remote Host brugernavn – abhishekvarma

Fjernværtsadresse – 192.168.29.70

scp /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Mens den opretter forbindelse til en ekstern maskine, beder den om adgangskoden. Her har jeg valgt en zip-fil til at kopiere.

Produktion

Og outputtet vil se sådan ud, hvis der ikke er nogen fejl ved tilslutning til en ekstern server.

sample.zip                                    100%   20KB  717.9KB/s   00:00

#2. Kopier en fil fra fjernbetjeningen til den lokale maskine

scp user@remotehost:/path/to/remote/file.txt /path/to/local/destination/

Samme som ovenfor, udskift bruger- og fjernværtsadressen.

Eksempel

scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop

Produktion

Dette er kun prøveudgangen i mit tilfælde. Tidsstemplet varierer afhængigt af forbindelseshastigheden.

sample.zip                                    100%   20KB  51.2KB/s   00:00

#3. Kopier en mappe rekursivt

scp user@remotehost:/path/to/remote/file.txt /path/to/local/destination/

Her fortæller ‘-r’-flaget SCP om at kopiere mapper rekursivt (inklusive undermapper og deres indhold).

Eksempel

scp -r /home/vboxuser/Desktop [email protected]:/Users/abhishekvarma/Desktop

Her nævnte jeg hele mappen for at kopiere filerne.

Produktion

sample.zip                                         100%   20KB    1.0MB/s   00:00
Screenshot from 2023-08-13 21-45-23.png            100%   27KB    1.5MB/s   00:00
.swp                                               100%   12KB  894.2KB/s   00:00
.help.swp                                          100%   12KB  780.4KB/s   00:00

#4. Kopier filer, der matcher et mønster

scp /path/to/local/*.txt user@remotehost:/path/to/destination/

*.txt – Dette er et jokertegnmønster, der matcher alle filer med en .txt-udvidelse i den angivne lokale mappe. Kilde- og destinationsstier er de samme som før.

  8 platforme, der kan hjælpe

Eksempel

scp /home/vboxuser/Desktop/locfolder/*.png [email protected]:/Users/abhishekvarma/Desktop

Produktion

Her har jeg prøvet med en .png-udvidelse.

Screenshot from 2023-08-13 21-45-23.png            100%   27KB    1.4MB/s   00:00
Screenshot from 2023-08-13 21-55-28.png            100%   24KB    1.7MB/s   00:00
Screenshot from 2023-08-13 22-04-03.png            100%   38KB    2.1MB/s   00:00

#5. Bevar filattributter

scp -p /path/to/local/file.txt user@remotehost:/path/to/destination/

Her bevarer ‘-p’-flaget ændringstiderne, adgangstider og tilstande for kildefilen ved kopiering.

Eksempel

scp -p /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Produktion

sample.zip                                         100%   20KB    420.0KB/s   00:00

#6. Angiv en anden SSH-port

scp -P 22 /path/to/local/file.txt user@remotehost:/path/to/destination/

‘-P’-flaget angiver en anden SSH-port (22 i dette tilfælde) for SCP-forbindelsen. Du kan bruge enhver port, du ønsker.

Eksempel

scp -P 22 /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Produktion

sample.zip                                         100%   20KB    1.2MB/s   00:00

#7. Kopier med komprimering

scp -C /path/to/local/file.txt user@remotehost:/path/to/destination/

Dette ‘-C’ flag muliggør komprimering under overførslen, hvilket potentielt reducerer størrelsen af ​​de overførte data. Kilde- og destinationsadressen er de samme som forklaret tidligere.

Eksempel

scp -C /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Produktion

sample.zip                                         100%   20KB    985.8KB/s   00:00

#8. Udførligt output til fejlretning

scp -v /path/to/local/file.txt user@remotehost:/path/to/destination/

Denne ‘-v’ mulighed aktiverer det verbose output, som giver mere detaljeret information under overførselsprocessen.

Eksempel

scp -v /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Produktion

Eksempeloutputtet vil se sådan ud.

Executing: program /usr/bin/ssh host 192.168.29.70, user abhishekvarma, command scp -v -t /Users/abhishekvarma/Desktop OpenSSH_8.9p1 Ubuntu-3ubuntu0.3, OpenSSL 3.0.2 15 Mar 2022
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to 192.168.29.70 [192.168.29.70] port 22. debug1: Connection established.
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa type -1 debug1: identity file /root/.ssh/id_ecdsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa_sk type -1 debug1: identity file /root/.ssh/id_ecdsa_sk-cert type -1

#9. Kopier fra ekstern til lokal med detaljeret output

scp -v user@remotehost:/path/to/remote/file.txt /path/to/local/destination/

Samme forklaringer som det foregående udførlige eksempel, med rollerne for lokale og fjerntliggende steder omvendt.

Eksempel

scp -v [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop

Produktion

Outputtet vil se sådan ud.

Executing: program /usr/bin/ssh host 192.168.29.70, user abhishekvarma, command scp -v -f /Users/abhishekvarma/Desktop/sample.zip OpenSSH_8.9p1 Ubuntu-3ubuntu0.3, OpenSSL 3.0.2 15 Mar 2022
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to 192.168.29.70 [192.168.29.70] port 22. debug1: Connection established.
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa type -1 debug1: identity file /root/.ssh/id_ecdsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa_sk type -1 debug1: identity file /root/.ssh/id_ecdsa_sk-cert type -1

#10. Kopier ved hjælp af en anden SSH-nøgle

scp -i /path/to/private_key.pem /path/to/local/file.txt user@remotehost:/path/to/destination/

Dette flag “-i /path/to/private_key.pem” angiver en anden privat SSH-nøgle til godkendelse.

  Sådan ændres hud i Minecraft PC

Eksempel

scp -i /path/to/private_key.pem /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Produktion

Hvis du har en privat nøgle, så kan du bruge den, eller også kan du bruge standardnøgle.

sample.zip                                         100%   20KB    1.1MB/s   00:00

#11. Kopier flere filer til den eksterne server

scp file1.txt file2.txt user@remotehost:/path/to/destination/

Denne kommando kopierer fil1.txt og fil2.txt fra den lokale mappe til den angivne destination på fjernserveren.

Eksempel

scp  /home/vboxuser/Desktop/image.png  /home/vboxuser/Desktop/sample.zip  [email protected]:/Users/abhishekvarma/Desktop 

Produktion

image.png                                          100%   39KB    1.4MB/s   00:00
sample.zip                                         100%   20KB    1.5MB/s   00:00

#12. Kopier en ekstern fil med et andet navn

scp user@remotehost:/path/to/remote/file.txt /path/to/local/newfilename.txt

Denne kommando kopierer fil.txt fra fjernserveren til den lokale mappe og omdøber den til nyt filnavn.txt i processen.

Eksempel

scp [email protected]:/Users/abhishekvarma/Desktop/sample.zip /home/vboxuser/Desktop/newfile.zip

Produktion

De gamle og nye filtypenavne skal være de samme, mens du udfører denne kommando.

sample.zip                                         100%   20KB    28.7KB/s   00:00

#13. Kopiering med specifik båndbreddegrænse

scp -l 1000 /path/to/local/file.txt user@remotehost:/path/to/destination/

Dette ‘-l’ flag angiver en båndbreddegrænse i Kbps (1000 Kbps i dette tilfælde) for overførslen.

Eksempel

scp -l 300 /home/vboxuser/Desktop/sample.zip [email protected]:/Users/abhishekvarma/Desktop

Produktion

sample.zip                                         100%   20KB    31.3KB/s   00:00
scp -rp /path/to/local/source/ user@remotehost:/path/to/destination/

‘-p’-flaget bevarer filattributter, og -r-flaget kopierer mapper rekursivt. Denne kommando bevarer også symbolske links under kopieringen.

Eksempel

scp -rp /home/vboxuser/Desktop/image.png [email protected]:/Users/abhishekvarma/Desktop

Produktion

image.png                                        100%   39KB    1.8MB/s   00:00

#15. Kopiering af filer udførligt med komprimering

scp -vC /path/to/local/file.txt user@remotehost:/path/to/destination/

Denne kommando kombinerer både verbose output (-v) og komprimering (-C) under filoverførslen.

Eksempel

scp -vC /home/vboxuser/Desktop/image.png [email protected]:/Users/abhishekvarma/Desktop

Produktion

Outputtet vil se sådan ud.

scp: debug1: fd 3 clearing O_NONBLOCK
Sending file modes: C0664 40050 image.png
Sink: C0664 40050 image.png
image.png
d 6 clearing O_NONBLOCK
scp: debug1: fd • clearing O_NONBLOCK
image.png
debug1: client_input_channel_req: channel ✪ type exit-status reply debug1: channel 0: free: client-session, channels 1
Transferred: sent 40220, received 2576 bytes, in 0.1 seconds
Bytes per second: sent 352570.0, received 22581.3
root@ubuntu: ~
debug1: Exit status 0
debug1: compress outgoing: raw data 40287, compressed 38198, factor 0.95 debug1: compress incoming: raw data 792, compressed 757, factor 0.96 

#16. Kopiering mellem to eksterne servere

Hvis du vil overføre filer fra en fjernserver til en anden, så kan du bruge denne kommando.

scp user1@remotehost1:/path/to/remote/file.txt user2@remotehost2:/path/to/destination/

Denne kommando overfører direkte file.txt fra remotehost1 til remotehost2.

Eksempel

scp user1@remotehost1:/path/to/remote/file.txt [email protected]:/Users/abhishekvarma/Desktop

Produktion

file.txt                100%  512KB 512.0KB/s   00:00

Hvis der er nogen fejl eller problemer under overførslen – kan outputtet vise fejlmeddelelser, der giver information om, hvad der gik galt.

ssh: connect to host source.example.com port 22: Connection refused
lost connection

I dette tilfælde antyder fejlmeddelelsen, at SSH-forbindelsen til kildeserveren blev afvist. Det kan skyldes forskellige årsager, såsom forkert værtsnavn, IP-adresse, port eller problemer med SSH-konfigurationen.

Ofte stillede spørgsmål om SCP

Her er nogle ofte stillede spørgsmål relateret til SCP-protokollen sammen med deres svar.

Hvordan adskiller SCP sig fra FTP eller SFTP?

FTP står for File Transfer Protocol.

SFTP står for File Transfer Protocol. Disse bruges begge til filoverførsler.

SCP fungerer over SSH og tilbyder både kryptering og autentificering i en enkelt protokol, hvilket gør det mere sikkert og effektivt.

Hvornår skal jeg bruge SCP?

SCP er bedst egnet til scenarier, hvor sikre og pålidelige filoverførsler er påkrævet, såsom fjernsikkerhedskopiering, softwareimplementering, distribution af konfigurationsfiler og samarbejde mellem teammedlemmer.

Er SCP kompatibel med IPv6-adresser?

Ja, SCP understøtter både IPv4- og IPv6-adresser, hvilket giver dig mulighed for at overføre filer over netværk, der bruger et hvilket som helst adresseringsskema.

Konklusion✍️

Jeg håber, du fandt denne artikel nyttig til at lære om SCP, og hvordan det virker.

Du kan også være interesseret i at lære om Linux-kommandoer til systemadministrator