hur man använder rsync med exempel

Rsync är ett populärt verktyg för filsynkronisering, både lokalt och på distans. Till skillnad från andra synkroniseringsverktyg använder rsync en intressant algoritm som minimerar bandbreddskonsumtionen. Det flyttar helt enkelt den del av filen / filerna som har ändrats.

det är ett kraftfullt verktyg som kan tjäna i många situationer. I den här artikeln visar jag hur du kommer igång med rsync med en demonstration. Demonstrationen kommer att utföras på Ubuntu 18.04.

Rsync

rsync står för termen fjärrsynkronisering. Trots namnet kan den hantera filsynkronisering på distans och lokalt. Termen rsync används också för att hänvisa till rsync-protokollet som rsync använder för synkronisering. I den här artikeln anger rsync alltid verktyget, inte protokollet.

på grund av sin stora popularitet är rsync tillgängligt på nästan alla Linux-och UNIX-liknande system. Det finns en god chans att det kommer förinstallerat. Om inte, gör lite forskning om hur du installerar rsync i ditt system.

Här är en lista över funktioner som rsync erbjuder.

  • Katalogkopiering
  • enkel säkerhetskopieringskonfiguration
  • kan fungera över SSH
  • kan köras som daemon/server
  • filbehörighetsretention

rsync-användning

innan vi hoppar in i rsync behöver vi några dummyfiler att arbeta med. Låt oss skapa en dummy katalog först.

$ mkdir-v primär

När du har skapat är det dags att skapa en handfull dummyfiler. För att skapa en fil använder jag kommandot touch. Läs mer om touch-kommandot.

$ tryck dummy{1..20}

Voila! Vi är nu redo att använda rsync för att utföra åtgärder med hjälp av dessa dummy-filer.

Rsync kommandostruktur

Rsync använder följande kommandostruktur.

$ rsync <alternativ><src><destination>

synkronisera lokala kataloger

nu är det dags att använda rsync för att synkronisera filer över flera destinationer. I det här exemplet synkroniserar vi innehållet i dir_primary till dir_target.

$ mkdir-v target

Säg till rsync att synkronisera innehållet i båda katalogerna.

$ rsync-v-r primär/ mål

Här har vi använt två olika argument.

-v: berättar rsync att köra in verbose läge
-r: rekursiv, krävs för katalogsynkronisering.

i det här nästa exemplet använder vi en annan flagga.

$ rsync-v-A primär/ mål

-a: en kombinationsflagga som står för”arkiv”.

med den här flaggan synkroniserar rsync innehållet rekursivt samtidigt som alla symboliska, speciella/enhetsfiler, modifieringstider, filbehörigheter, grupp, ägare etc. bevaras. Det är vanligare än ”-r” – flaggan. För arkiv är detta en mer rekommenderad metod.

märkte du att i alla kommandon vi har kört hittills, när det gäller källa, behåller vi alltid ” / ” efter katalogens namn? Detta för att berätta för rsync att källan är allt innehåll i källkatalogen. Om ” / ” i slutet av källkatalogen inte används, skapar rsync helt enkelt en kopia av källkatalogen istället för dess innehåll.

låt oss kolla in det med ett exempel.

$ rsync-V-ett primärt mål

kontrollera utmatningsresultatet.

$ tree target/

För det mesta är detta inte något vi behöver. Beroende på situationen kan det dock vara till nytta.

rsync test run

innan du kör ett rsync-kommando är det alltid viktigt att verifiera att kommandot kommer att utföra åtgärden som förväntat. Om du vill testa rsync-åtgärden för ett visst kommando, använd flaggan ”- n” eller ”-dry-run”.

$ rsync-AVN primärt mål

$ rsync-AVN primärt mål

här visar utgången vad rsync skulle utföra om kommandot faktiskt kördes. När du testar, glöm inte att använda ”-v” – flaggan för att få en korrekt representation av vad som händer.

Rsync över en fjärranslutning

detta är en annan intressant funktion rsync stöder. Om din säkerhetskopieringsplats är någonstans avlägsen kan du enkelt konfigurera rsync för att utföra säkerhetskopiering på fjärrplatsen via SSH. Båda maskinerna måste dock ha rsync installerat. Dessutom måste båda systemen också ha SSH-tangenter.

redo? Nu sätter vi igång. Först är det arkivsynkronisering.

$ rsync-a <local_dir><användarnamn><remote_host><
destination_dir>

här kallas denna operation a ”push” eftersom det driver en katalog från det lokala systemet till ett fjärrsystem. Motsatsen kallas”pull”.

$ rsync-a <användarnamn><remote_host><source_dir><local_dir>

rsync behandlar det första argumentet som källa, det andra som destination.

Användbara rsync-alternativ

Rsync stöder massor av alternativ. Alla tjänar sitt eget syfte. Men för det mesta används bara en handfull av dem för det mesta. I det här avsnittet, låt oss ta en titt på några användbara rsync alternativ.

För det mesta komprimeras inte de filer du ska synkronisera. Med komprimering kan du spara både tid och bandbredd på bekostnad av lite extra processorkraft. Rsync erbjuder komprimering som standard. För att utföra komprimerad synkronisering, använd flaggan” – z”.

$ rsync-AVZ <källa><destination>

denna intressanta flagga kombinerar funktionen för både ”-progress” och ”-partial” flagga. Den första är att visa en förloppsindikator för överföringen och den andra är att aktivera återupptagande av avbruten överföring. Båda dessa funktioner kombineras i flaggan” – P”.

$ rsync -avzP <source><destination>

Now, let’s check out how rsync handles file syncing intelligently. Run the previous command again.

$ rsync-avzp <källa><destination>

här laddade rsync inte upp alla filer igen. Istället hoppade det över de som inte förändrades alls. I det här exemplet hoppade det över alla filer eftersom alla finns i destinationskatalogen.

vad händer om du raderade en fil från källkatalogen? Som standard tar rsync inte bort något från destinationskatalogen. För att tvinga rsync radera filer, använd flaggan ”–radera”. Använd dock torrkörningen för att testa om kommandot fungerar som du vill.

$ rsync-AVN –delete <källa><destination>

som standard synkroniserar rsync varje enskild fil/katalog från källan till destinationskatalogen. I vissa situationer kanske du vill inkludera/utesluta vissa filer från synkronisering. Rsync erbjuder praktiska alternativ som” –exclude ”och” – include ” för att utesluta/inkludera vissa filer. Skicka filmönstret som värde för dessa argument.

$ rsync-AVN –exclude=<mönster> –include=<mönster>

Du kan också definiera den största filstorleken som rsync ska synkronisera. För att göra det, använd flaggan ”–max-size” följt av filstorleken.

$ rsync-AVN –max-size=’10K’ <källa><destination>

rsync har en annan intressant funktion i ärmen. Behöver du inte längre källfilen efter synkronisering? Rsync kan göra det, inga problem. Se dock till att du inte kör rsync med ”-delete” – flaggan. Annars tar rsync bort de synkroniserade filerna från destinationen!

$ rsync-av –remove-source-files <källa><destination>

slutliga tankar

dessa är bara några vanliga och enkla scenarier för rsync-användning. Det erbjuder mycket mer än så. Det är möjligt att automatisera rsync operationer med antingen rsync daemon eller andra skript. Förhoppningsvis var den här guiden till hjälp för att komma igång med rsync.

intresserad av mer rsync? Tja, du kan använda rsync som filkopiator. Det är mer effektivt och intelligent än cp. Mer djupgående funktioner och användning kan hittas i rsync man page.

$ man rsync

Njut!



Lämna ett svar

Din e-postadress kommer inte publiceras.