16 Vanliga SCP-kommandon med exempel för att kopiera filer och mappar

By rik

SCP, ett protokoll för säker filöverföring, har sin grund i samma koncept som det välkända SSH-protokollet.

En viktig egenskap hos SCP är att all data som överförs skyddas med kryptering och integritet, tack vare dess integration med SSH. Det innebär att informationen inte bara är konfidentiell utan också oförändrad under överföringen.

Innan vi dyker ner i praktiska exempel, är det bra att förstå hur SCP fungerar i grunden. Därefter kommer vi att utforska olika kommandon relaterade till SCP.

Vad är SCP?

SCP, som står för Secure Copy Protocol, är en teknik för säker filkopiering.

Det möjliggör överföring av filer och kataloger mellan olika system – antingen lokala och fjärranslutna datorer eller mellan två fjärrdatorer. Processen är både säker och effektiv.

SCP är en vanlig metod för att skicka information på ett säkert sätt över nätverk. Det bygger på SSH (Secure Shell) för att upprätta en krypterad anslutning och säkerställa dataskydd under överföringen.

Oavsett om du behöver flytta en enskild fil eller en hel mappstruktur, är SCP en pålitlig metod för filöverföring över nätverket.

Hur fungerar SCP?

SCP är konstruerat ovanpå SSH-protokollet, som är ett kryptografiskt nätverksprotokoll för säker fjärrinloggning och fjärrkommandoexekvering. Det använder samma säkerhetsmekanismer som SSH, inklusive kryptering och autentisering, för att skydda data under överföring.

När en användare initierar ett SCP-kommando på sin lokala dator, specificeras källfilen och destinationsplatsen på fjärrdatorn. SCP etablerar sedan en SSH-anslutning till fjärrsystemet och kopierar filerna säkert från källan till destinationen.

När ska man använda SCP?

SCP är särskilt användbart i följande situationer:

Säkerhetskopiering av fjärrservrar

SCP är utmärkt för att göra säkerhetskopior av filer från en fjärrserver till din lokala dator eller tvärtom. Detta säkerställer redundans och ger möjlighet till återställning vid eventuella problem.

Distribution av applikationer

När applikationer ska distribueras på flera servrar, förenklar SCP processen genom att säkert kopiera de nödvändiga filerna till varje målserver.

Överföring av stora filer

SCP är ett pålitligt och säkert alternativ för att överföra stora filer, särskilt de som är för stora för att skickas via e-post.

Säker fildelning

Med SCP kan du dela konfidentiella filer med andra på ett säkert sätt, eftersom datan förblir krypterad under hela överföringsprocessen.

Fjärrsamarbete

SCP är praktiskt för att säkert dela filer med kollegor eller gruppmedlemmar på olika platser.

SCP-kommandosyntax

Innan vi börjar utforska hur SCP-kommandot används, låt oss först titta på den grundläggande syntaxen:

scp [alternativ] [källa] [destination]

En förklaring av syntaxen:

Alternativ

Dessa är valfria flaggor som ändrar hur SCP-kommandot fungerar. Du kan använda olika alternativ för att anpassa överföringsprocessen. Här är några vanliga alternativ:

-r: Kopierar kataloger och deras innehåll rekursivt.
-p: Bevarar originalfilens behörigheter, tidsstämplar och lägen.
-P: Anger portnumret för SSH-anslutningen.
-i: Anger den privata nyckelfilen för SSH-autentisering.
-C: Använder komprimering för snabbare dataöverföring.
-l: Begränsar bandbredden som används för överföringen (i kbit/s).
-v: Utförligt läge – visar felsökningsmeddelanden under överföringen.
-o: Skickar ett alternativ till SSH-klienten. Det kan användas för att inaktivera strikt värdnyckelkontroll.

Källa

Källan anger filen eller katalogen som du vill kopiera. Den kan vara en lokal eller fjärransluten sökväg, beroende på sammanhanget.

Destination

Destinationen anger vart du vill kopiera källan. Precis som källan, kan den vara en lokal eller fjärransluten sökväg.

Kommandoexempel

#1. Kopiera en fil från lokal till fjärrserver

scp /sökväg/till/lokal/fil.txt användare@fjärrvärd:/sökväg/till/destination/

/sökväg/till/lokal/fil.txt: Det här är den lokala filen som du vill kopiera.

användare@fjärrvärd: Byt ut ’användare’ mot fjärranvändarens namn och ’fjärrvärd’ mot värdnamnet eller IP-adressen för fjärrservern.

/sökväg/till/destination/: Det här är målsökvägen på fjärrservern där filen ska kopieras.

Exempel:

I det här exemplet har jag valt en fjärrserver för att överföra filen.

Fjärrvärds användarnamn – abhishekvarma

Fjärrvärdsadress – 192.168.29.70

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

När anslutningen till fjärrdatorn är upprättad, kommer du att bli ombedd att ange lösenordet. I detta fall har jag valt att kopiera en zip-fil.

Resultat:

Om det inte uppstår några fel vid anslutning till fjärrservern, kommer resultatet att se ut ungefär så här:

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

#2. Kopiera en fil från fjärrservern till den lokala maskinen

scp användare@fjärrvärd:/sökväg/till/fjärr/fil.txt /sökväg/till/lokal/destination/

Som i exemplet ovan, byt ut användarnamnet och fjärrvärdsadressen.

Exempel:

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

Resultat:

Detta är endast ett exempel. Tidsstämplarna varierar beroende på anslutningshastigheten.

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

#3. Kopiera en katalog rekursivt

scp användare@fjärrvärd:/sökväg/till/fjärr/fil.txt /sökväg/till/lokal/destination/

Här instruerar ’-r’-flaggan SCP att kopiera kataloger rekursivt, inklusive underkataloger och deras innehåll.

Exempel:

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

Här har jag angett hela katalogen för att kopiera alla filer.

Resultat:

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. Kopiera filer som matchar ett mönster

scp /sökväg/till/lokal/*.txt användare@fjärrvärd:/sökväg/till/destination/

*.txt – Det här är ett jokerteckenmönster som matchar alla filer med filändelsen .txt i den angivna lokala katalogen. Käll- och destinationsvägarna är desamma som tidigare.

Exempel:

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

Resultat:

Här har jag använt filändelsen .png.

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. Bevara filattribut

scp -p /sökväg/till/lokal/fil.txt användare@fjärrvärd:/sökväg/till/destination/

Här bevarar ’-p’-flaggan ändringstider, åtkomsttider och lägen för källfilen under kopieringen.

Exempel:

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

Resultat:

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

#6. Ange en annan SSH-port

scp -P 22 /sökväg/till/lokal/fil.txt användare@fjärrvärd:/sökväg/till/destination/

Flaggan ’-P’ specificerar en annan SSH-port (22 i detta fall) för SCP-anslutningen. Du kan använda vilken port du vill.

Exempel:

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

Resultat:

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

#7. Kopiera med komprimering

scp -C /sökväg/till/lokal/fil.txt användare@fjärrvärd:/sökväg/till/destination/

Flaggan ’-C’ aktiverar komprimering under överföringen, vilket kan minska storleken på den överförda datan. Käll- och destinationsadresserna är desamma som tidigare.

Exempel:

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

Resultat:

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

#8. Utförlig utdata för felsökning

scp -v /sökväg/till/lokal/fil.txt användare@fjärrvärd:/sökväg/till/destination/

Alternativet ’-v’ aktiverar en utförlig utdata, som ger mer detaljerad information under överföringsprocessen.

Exempel:

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

Resultat:

Ett exempel på hur utdata kan se ut:

Executing: program /usr/bin/ssh host 192.168.29.70, user abhishekvarma, command scp -v -t /Users/abhishekvarma/Skrivbord 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. Kopiera från fjärrserver till lokal dator med utförlig utdata

scp -v användare@fjärrvärd:/sökväg/till/fjärr/fil.txt /sökväg/till/lokal/destination/

Samma förklaringar som i det tidigare utförliga exemplet, med de lokala och fjärranslutna platserna omvända.

Exempel:

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

Resultat:

Utdata kommer att se ut ungefär så här:

Executing: program /usr/bin/ssh host 192.168.29.70, user abhishekvarma, command scp -v -f /Users/abhishekvarma/Skrivbord/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. Kopiera med en annan SSH-nyckel

scp -i /sökväg/till/privat_nyckel.pem /sökväg/till/lokal/fil.txt användare@fjärrvärd:/sökväg/till/destination/

Flaggan ’-i /sökväg/till/privat_nyckel.pem’ specificerar en annan privat SSH-nyckel för autentisering.

Exempel:

scp -i /sökväg/till/privat_nyckel.pem /home/vboxuser/Skrivbord/sample.zip [email protected]:/Users/abhishekvarma/Skrivbord

Resultat:

Om du har en privat nyckel, kan du använda den. Annars kan du använda standardnyckeln.

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

#11. Kopiera flera filer till fjärrservern

scp fil1.txt fil2.txt användare@fjärrvärd:/sökväg/till/destination/

Detta kommando kopierar fil1.txt och fil2.txt från den lokala katalogen till den angivna destinationen på fjärrservern.

Exempel:

scp /home/vboxuser/Skrivbord/bild.png /home/vboxuser/Skrivbord/sample.zip [email protected]:/Users/abhishekvarma/Skrivbord

Resultat:

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

#12. Kopiera en fjärrfil med ett annat namn

scp användare@fjärrvärd:/sökväg/till/fjärr/fil.txt /sökväg/till/lokal/nyttfilnamn.txt

Detta kommando kopierar fil.txt från fjärrservern till den lokala katalogen och byter namn till nyttfilnamn.txt under processen.

Exempel:

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

Resultat:

De gamla och nya filändelserna bör vara desamma när du kör detta kommando.

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

#13. Kopiering med specifik bandbreddsgräns

scp -l 1000 /sökväg/till/lokal/fil.txt användare@fjärrvärd:/sökväg/till/destination/

Flaggan ’-l’ specificerar en bandbreddsgräns i Kbps (1000 Kbps i det här fallet) för överföringen.

Exempel:

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

Resultat:

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

#14. Kopiera filer och bevara symboliska länkar

scp -rp /sökväg/till/lokal/källa/ användare@fjärrvärd:/sökväg/till/destination/

Flaggan ’-p’ bevarar filattribut och ’-r’-flaggan kopierar kataloger rekursivt. Detta kommando bevarar även symboliska länkar under kopieringen.

Exempel:

scp -rp /home/vboxuser/Skrivbord/bild.png [email protected]:/Users/abhishekvarma/Skrivbord

Resultat:

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

#15. Kopiera filer utförligt med komprimering

scp -vC /sökväg/till/lokal/fil.txt användare@fjärrvärd:/sökväg/till/destination/

Detta kommando kombinerar både utförlig utdata (-v) och komprimering (-C) under filöverföringen.

Exempel:

scp -vC /