rsync

Hur man använder rsync för att kopiera filer

Hur man använder rsync för att kopiera filer
Rsync är ett kommandoradsverktyg i Linux som används för att kopiera filer från en källplats till en destinationsplats. Du kan kopiera filer, kataloger och hela filsystemet och synkronisera filerna mellan olika kataloger. Det gör mer än bara att kopiera filerna. Det minskar mängden data som skickas över nätverket genom att bara skicka de nya eller uppdaterade filerna. Därför anses det vara ett utmärkt verktyg för kopiering och säkerhetskopiering av filer. Rsync stöder också kopiering av filer till ett fjärrsystem via SSH.

I den här artikeln kommer vi att förklara hur man använder rsync för att kopiera filer med några praktiska exempel. Vi kommer också att förklara användningen av rsync vid kopiering av en enda fil, flera filer och katalog till både lokala och fjärrsystem. Vi kommer att täcka hur man använder Rsync för att:

Vi har förklarat kommandona och proceduren som nämns i den här artikeln på en Ubuntu 20.04 LTS. Du behöver kommandoradsterminalen för att kopiera filer med rsync. För att öppna kommandoradsterminalapplikationen använder du tangentbordsgenvägen Ctrl + Alt + T.

Installerar Rsync

Rsync kommer förinstallerat i Ubuntu 20.04 LTS. Om det av misstag tas bort från systemet kan du installera det enligt följande:

$ sudo apt install rsync

Här är några av de vanligaste alternativen som kan användas med rsync:

-a: arkivläge
-v: visar detaljer om kopieringsprocessen
-p: visar förloppsindikatorn
-r: kopierar data rekursivt
-z: komprimerar data
-q: undertrycka utdata

Kopiera filer och kataloger lokalt

Den allmänna syntaxen för rsync är:

$ rsync [option] [source] [destination]

Kopiera en enda fil lokalt

Om du vill kopiera en fil från en plats till en annan inom ditt system kan du göra det genom att skriva rsync följt av källfilens namn och målkatalogen.

Till exempel att kopiera en enstaka fil “fil1.txt ”från den aktuella platsen som är hemkatalogen till ~ / Dokumentkatalogen, skulle kommandot vara:

$ rsync / home / tin / file1.txt / hem / tenn / Dokument

Obs: I stället för “/ home / tin / file1.txt ”kan vi också skriva“ file1 ”eftersom vi för närvarande arbetar i hemkatalogen. Vi kan också använda ~ / Documents istället för att nämna hela sökvägen som "/ home / tin / Documents".

Kopiera flera filer lokalt

Om du vill kopiera flera filer samtidigt från en plats till en annan i ditt system kan du göra det genom att skriva rsync följt av källfilernas namn och målkatalogen.

Till exempel för att kopiera filerna “file2.txt ”och” file3.txt ”från hemkatalogen till ~ / Dokumentkatalogen skulle kommandot vara:

$ rsync / home / tin / file2.txt / hem / tenn / fil 3.txt / hem / tenn / Dokument

För att kopiera alla filer med samma förlängning kan du använda asterisk (*) -symbol istället för att ange filnamnen individuellt. Till exempel att kopiera alla filer från hemkatalogen som slutar med “.zip ”-tillägg till katalogen ~ / Documents, vi kommer att använda:

$ rsync / home / tin / *.zip ~ / Dokument

Kopiera kataloger lokalt

Om du vill kopiera en katalog med dess underkatalog och allt innehåll från en plats till en annan inom ditt system kan du göra det genom att skriva rsync följt av käll- och målkatalogen.

Till exempel, för att kopiera katalogen "exempel" till "test /" -katalogen i hemkatalogen skulle kommandot vara:

$ rsync -av / hem / tenn / prov / hem / tenn / test

Obs! Om du anger “/” efter källkatalogen kopieras endast innehållet i katalogen. Om vi ​​inte anger “/” efter källkatalogen kommer källkatalogen också att kopieras till målkatalogen.

Liksom i följande utdata kan du se att vår källkatalog "exempel" också kopieras till målkatalogen (eftersom vi har använt "prov" istället för "prov /" som en källkatalog).

Rsync stöder inkrementell överföring som du kan se i ovanstående utdata att den bara överför de filer som är nya eller uppdaterade.

Kopiera filer baserat på maximal storlek

Under kopieringen kan vi också ange den maximala storleken på filer som kan kopieras med alternativet “-max-storlek”. Till exempel, för att kopiera filer som inte är större än 2000k från ~ / Nedladdningar till ~ / Dokumentkatalog, skulle kommandot vara:

$ rsync -a --max-storlek = 2000k / hem / tenn / Nedladdningar / * / hem / tenn / Dokument

Detta kommando kopierar alla filer från ~ / Nedladdningar till ~ / Dokumentkatalog utom de som är större än 2000k.

Kopiera filer baserat på minsta storlek

På samma sätt kan vi också ange minsta storlek på filer som kan kopieras med alternativet "-min-storlek". Till exempel, för att kopiera filerna inte mindre än 5M från ~ / Nedladdningar till ~ / Dokument-katalogen skulle kommandot vara:

$ rsync -a --min-size = 5M / hem / tenn / Nedladdningar / / hem / tenn / Dokument

Detta kommando kommer att kopiera alla filer från ~ / Nedladdningar till katalogen ~ / Dokument utom de som är mindre än 5M.

Uteslut filer

När du kopierar filer från en katalog till en annan kan du utesluta vissa filer med alternativet "-exkludera" följt av filnamnet eller filtypsförlängningen.

Till exempel för att utesluta alla .zip-filer medan du kopierar filer från ~ / Nedladdningar till ~ / Dokumentkatalog, skulle kommandot vara:

$ rsync -a --exclude = "*.zip "/ hem / tenn / Nedladdningar / / hem / tenn / Dokument

Kopiera filer och kataloger på distans

Med Rsync kan du kopiera en enda fil, flera filer och kataloger till ett fjärrsystem. För att kunna kopiera filer och kataloger på distans behöver du:

Innan du kopierar filer med rsync, se till att du kan komma åt fjärrsystemet via SSH:

$ ssh remote_user @ remote_ip


Den allmänna syntaxen för kopiering av filer och kataloger till ett fjärrsystem med rsync:

$ rsync [option] [source] [remoteuser @ remoteip: destination]

Till exempel för att kopiera en fil ”fil.txt ”från ~ / Nedladdningar till fjärrsystem ~ / Dokumentkatalog, kommandot skulle vara:

$ rsync -v ~ / Nedladdningar / fil1.txt umara @ 192.168.72.164: ~ / Dokument

På samma sätt kan du kopiera katalogen “~ / Downloads / files” i ett lokalt system med dess underkatalog och allt innehåll till katalogen “~ / Downloads / samples” på fjärrsystemet:

$ rsync -rv ~ / Nedladdningar / filer umara @ 192.168.72.164: ~ / Nedladdningar / prover

Du kan också kopiera filer och kataloger från fjärrmaskinen till din lokala maskin. Till exempel att kopiera en “fil2.txt ”från fjärrsystemet till det lokala systemets skrivbord:

$ rsync -v umara @ 192.168.72.164: ~ / Nedladdningar / fil2.txt ~ / Desktop /

På samma sätt för att kopiera en katalog från fjärrsystemet till det lokala systemet

$ rsync -rv umara @ 192.168.72.164: ~ / Nedladdningar / exempel ~ / Skrivbord / test

Du kan också använda alla alternativ som -max-storlek, -min-storlek, -exkludera och andra medan du kopierar filer till / från fjärrsystemet.

Rsync är ett utmärkt verktyg för att kopiera filer från källa till destination antingen lokalt eller på distans. Den innehåller en stor uppsättning alternativ som ger dig flexibilitet och kontroll när du överför filer till / från fjärrsystemet.

Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...
Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...
Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...