Android

Hur man använder rsync för lokal och fjärröverföring och synkronisering av data

Rsync (Remote Sync) - Backup and Synchronize Data Tutorial

Rsync (Remote Sync) - Backup and Synchronize Data Tutorial

Innehållsförteckning:

Anonim

Rsync är ett snabbt och mångsidigt kommandoradsprogram som synkroniserar filer och mappar mellan två platser över ett fjärrskal, eller från / till en fjärr Rsync-demon. Det ger snabb inkrementell filöverföring genom att bara ö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 sftp scp , sftp och cp för vardagligt bruk.

I den här tutorialen visar vi dig hur du använder rsync genom praktiska exempel och detaljerade förklaringar av de vanligaste rsync alternativen.

Installera Rsync

rsync verktyget är förinstallerat på de flesta Linux-distributioner och macOS. Du kan kontrollera om det är installerat på ditt system genom att skriva:

rsync --version

rsync version 3.1.2 protocol version 31

Installera Rsync på Ubuntu och Debian

sudo apt install rsync

Installera Rsync på CentOS och Fedora

sudo yum install rsync

Rsync Command Syntax

Innan vi går in på hur man använder rsync kommandot, låt oss börja med att granska grundsyntaxen.

Uttrycket rsync verktyg har följande form:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - Alternativ för rsync. SRC - Källkatalog. DEST - Destinationskatalog. USER - Fjärranvändarnamn. HOST - Remote hostname ot IP Address.

rsync tillhandahåller ett antal alternativ som styr alla aspekter av dess beteende. De mest använda alternativen är:

  • -a , --archive , --archive , motsvarande -rlptgoD . Det här alternativet berättar rsync att synkronisera kataloger rekursivt, överföra speciella och blockera enheter, bevara symboliska länkar, modifieringstider, grupp, ägande och behörigheter. -z , - --compress . Det här alternativet kommer att tvinga rsync att komprimera data när det skickas till destinationsmaskinen. Använd det här alternativet endast om anslutningen till fjärrmaskinen är långsam. -P , motsvarande - --partial --progress . När det här alternativet används kommer rsync att visa en framstegsfält under överföringen och för att behålla de delvis överförda filerna. Det är användbart när du överför stora filer över långsamma eller instabila nätverksanslutningar. --delete . När du använder detta alternativ kommer rsync att ta bort främmande filer från destinationsplatsen. Det är användbart för spegling. -q , - --quiet . Använd det här alternativet om du vill undertrycka icke-felmeddelanden. -e . Det här alternativet låter dig välja ett annat fjärrskal. Som standard är rsync konfigurerad för att använda ssh.

Grundläggande Rsync-användning

För att kopiera en enda fil från en till en annan lokal plats kör du följande kommando:

rsync -a /opt/filename.zip /tmp/

Användaren som kör kommandot måste ha läsbehörigheter på destinationsplatsen och skrivbehörigheter på destinationen.

Om du släpper filnamnet från destinationsplatsen kopieras 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

I exemplet nedan skapar vi en lokal säkerhetskopia av våra webbplatsfiler:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Om destinationskatalogen inte finns rsync skapar den.

Det är värt att nämna att rsync ger olika behandlingar till källkatalogerna med en slash / . Om du lägger till en släta snedstreck i källkatalogen kopierar den bara innehållet i katalogen till destinationskatalogen. När den efterföljande snedstrecken är utelämnad kommer rsync att kopiera källkatalogen i destinationskatalogen.

Hur man använder Rsync för att synkronisera data från / till en fjärrmaskin

När du använder rsync för fjärröverföring måste den installeras på både källan och destinationsmaskinen. 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 inte har ställt in en lösenordsfri SSH-inloggning på fjärrmaskinen kommer du att bli ombedd att ange användarlösenordet.

Om du vill överföra data från en fjärrkontroll till en lokal maskin måste du använda fjärrplatsen som källa:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Om SSH på fjärrvärden lyssnar på en annan port än standard 22 kan du ange 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 rsync kommandot i en skärmsession eller använda alternativet -P :

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Uteslut filer och kataloger

När du undantar filer eller kataloger måste du använda deras relativa sökvägar till källplatsen.

Det finns två alternativ för att utesluta filer och kataloger. Det första alternativet är att använda argumentet - --exclude och specificera de filer och kataloger som du vill utesluta på kommandoraden.

I följande exempel utesluter vi node_modules och tmp kataloger som finns i src_directory :

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

Det andra alternativet är att använda --exclude-from och specificera de filer och kataloger som du vill utesluta i en fil.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/ /exclude-file.txt

node_modules tmp

Slutsats

I denna handledning lärde du dig att använda Rsync för att kopiera och synkronisera filer och kataloger. Det finns mycket mer att lära sig om Rsync på Rsync Användarmanual-sida.

Lämna gärna en kommentar om du har några frågor.

rsync terminal