rsync
är ett snabbt och mångsidigt kommandoradsverktyg för att synkronisera filer och kataloger mellan två platser via ett fjärrskal eller från/till en fjärr-Rsync-demon. Det ger snabb inkrementell filöverföring genom att endast överföra skillnaderna mellan källan och destinationen.
Rsync kan användas för spegling av data, inkrementella säkerhetskopior, kopiering av filer mellan system och som ersättning för scp
, sftp
och cp
kommandon.
Denna artikel förklarar hur man använder rsync
genom praktiska exempel och detaljerade förklaringar av de vanligaste rsync
-alternativen.
Installation av Rsync #
Verktyget rsync
är förinstallerat på de flesta Linux-distributioner och macOS. Om du inte har rsync
installerat på ditt system kan du enkelt installera det med hjälp av din distributions pakethanterare.
Installera Rsync på Ubuntu och Debian #
sudo apt install rsync
Installera Rsync på CentOS och Fedora #
sudo yum install rsync
Rsync Command Syntax #
För att gå in på hur man använder rsync
-kommandot börjar vi med att gå igenom den grundläggande syntaxen.
Värdighetsuttrycken rsync
har följande form:
Local to Local: rsync ... ... DESTLocal to Remote: rsync ... ... HOST:DESTRemote to Local: rsync ... HOST:SRC...
-
OPTION
– Rsync-alternativen. -
SRC
– Källkatalogen. -
DEST
– Målkatalogen. -
USER
– Fjärranvändarnamn. -
HOST
– Fjärrvärdsnamn eller IP-adress.
rsync
ger ett antal alternativ som styr hur kommandot beter sig. De mest använda alternativen är:
-
-a
,--archive
, arkivläge, motsvarar-rlptgoD
. Detta alternativ talar om förrsync
att synkronisera kataloger rekursivt, överföra special- och blockenheter, bevara symboliska länkar, modifieringstider, grupper, ägarskap och behörigheter. -
-z
,--compress
. Det här alternativet tvingarrsync
att komprimera data när de skickas till målmaskinen. Använd det här alternativet endast om anslutningen till fjärrmaskinen är långsam. -
-P
, motsvarar--partial --progress
. När det här alternativet används visarrsync
en förloppsindikator under överföringen och behåller de delvis överförda filerna. Det är användbart när du överför stora filer via långsamma eller instabila nätverksanslutningar. -
--delete
. När det här alternativet används tarrsync
bort ovidkommande filer från destinationsplatsen. Det är användbart vid spegling. -
-q
,--quiet
. Använd det här alternativet om du vill undertrycka meddelanden som inte är felmeddelanden. -
-e
. Med det här alternativet kan du välja ett annat fjärrskal. Som standard ärrsync
konfigurerad att använda ssh.
Basisk Rsync-användning #
Det mest grundläggande användningsfallet för rsync
är att kopiera en enda fil från en till en annan lokal plats. Här är ett exempel:
rsync -a /opt/filename.zip /tmp/
Användaren som kör kommandot måste ha läsbehörighet på källplatsen och skrivbehörighet på destinationen.
Om du skickar filnamnet från destinationsplatsen kopierar du filen med det aktuella namnet. Om du vill spara filen under ett annat namn anger du det nya namnet på destinationsdelen:
rsync -a /opt/filename.zip /tmp/newfilename.zip
Den verkliga kraften i rsync
kommer när du synkroniserar kataloger. Exemplet nedan visar hur du skapar en lokal säkerhetskopia av webbplatsfiler:
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
Om destinationskatalogen inte finns kommer rsync
att skapa den.
Det är värt att nämna att rsync
behandlar källkataloger med ett avslutande snedstreck (/
) annorlunda. Om källkatalogen har ett avslutande snedstreck kopierar kommandot endast kataloginnehållet till målkatalogen. När det avslutande snedstrecket utelämnas kopierar rsync
källkatalogen inuti målkatalogen.
Användning av rsync för att synkronisera data från/till en fjärrmaskin #
När du använder rsync
för att överföra data på distans måste det installeras på både käll- och målmaskinen. De nya versionerna av rsync
är konfigurerade för att använda SSH som standardfjärrskal.
I följande exempel överför vi en katalog från en lokal till en fjärrmaskin:
rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Om du vill överföra data från en fjärrmaskin till en lokal maskin använder du fjärrplatsen som källa:
rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Om SSH på fjärrvärddatorn lyssnar på en annan port än standardporten 22 anger du porten med alternativet -e
:
rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Vid överföring av stora mängder data rekommenderas att köra kommandot rsync
i en skärmsession eller att använda alternativet -P
:
rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Exkludera filer och kataloger #
Det finns två alternativ för att utesluta filer och kataloger. Det första alternativet är att använda argumentet --exclude
och ange de filer och kataloger du vill utesluta på kommandoraden.
När du utesluter filer eller kataloger måste du använda deras relativa sökvägar till källplatsen.
I följande exempel visas hur man utesluter katalogerna node_modules
och tmp
:
rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/
Det andra alternativet är att använda --exclude-from
-alternativet och ange de filer och kataloger som du vill utesluta i en fil.
rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
node_modulestmp
Slutsats #
Vi har visat hur du använder Rsync för att kopiera och synkronisera filer och kataloger. Det finns mycket mer att lära om Rsync på Rsync User’s Manualpage.