Sådan bruges rsync med eksempler

Rsync er et populært værktøj til filsynkronisering, både lokalt og eksternt. I modsætning til andre synkroniseringsværktøjer bruger rsync en interessant algoritme, der minimerer båndbreddeforbruget. Det flytter simpelthen den del af filen(E), der er ændret.

det er et kraftfuldt værktøj, der kan tjene i mange situationer. I denne artikel vil jeg vise, hvordan man kommer i gang med rsync med en demonstration. Demonstrationen vil blive udført på Ubuntu 18.04.

Rsync

rsync står for udtrykket fjernsynkronisering. På trods af navnet kan det håndtere filsynkronisering eksternt og lokalt. Udtrykket rsync bruges også til at henvise til rsync-protokollen, som rsync bruger til synkronisering. I denne artikel vil rsync altid betegne værktøjet, ikke protokollen.

på grund af sin store popularitet er rsync tilgængelig på næsten hvert enkelt system. Der er en god chance for, at det kommer forudinstalleret. Hvis ikke, skal du undersøge lidt, hvordan du installerer rsync i dit system.

Her er en liste over funktioner rsync tilbud.

  • Katalogkopiering
  • Easy Backup configuration
  • kan arbejde over SSH
  • kan køre som dæmon/server
  • filretention

rsync-brug

før vi hopper ind i rsync, har vi brug for nogle dummy-filer at arbejde med. Lad os først oprette en dummy-mappe.

$ mkdir-v primær

Når det er oprettet, er det tid til at oprette en håndfuld dummy-filer. For at oprette en fil bruger jeg touch-kommandoen. Lær mere om touch-kommandoen.

$ touch dummy{1..20}

Voila! Vi er nu klar til at bruge rsync til at udføre handlinger ved hjælp af disse dummy-filer.

rsync kommandostruktur

Rsync bruger følgende kommandostruktur.

$ rsync <option><src><destination>

Synkroniser lokale mapper

nu er det tid til at bruge rsync til synkronisering af filer på tværs af flere destinationer. I dette eksempel synkroniserer vi indholdet af dir_primary til dir_target.

$ mkdir-v target

Fortæl rsync at synkronisere indholdet af begge mapper.

$ rsync-v-r primær/ target

Her har vi brugt to forskellige argumenter.

-v: fortæller rsync at løbe ind i verbose mode
-r: rekursiv, der kræves til katalogsynkronisering.

i dette næste eksempel bruger vi et andet flag.

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

-a: et kombinationsflag, der står for”arkiv”.

Ved hjælp af dette flag synkroniserer rsync indholdet rekursivt, mens der bevares symbolske, specielle/enhedsfiler, ændringstider, filtilladelser, gruppe, ejer osv. Det er mere almindeligt anvendt end “-r” flag. Til arkivering er dette en mere anbefalet metode.

har du bemærket, at i alle de kommandoer, vi har kørt hidtil, i tilfælde af kilde, beholder vi altid “/” efter navnet på mappen? Dette er for at fortælle rsync, at kilden er alt indholdet i kildekataloget. Hvis ” / ” i slutningen af kildekataloget ikke bruges, opretter rsync simpelthen en kopi af kildekataloget i stedet for dets indhold.

lad os tjekke det ud med et eksempel.

$ rsync-v-et primært mål

kontroller outputresultatet.

$ tree target/

det meste af tiden er dette ikke noget, vi har brug for. Men afhængigt af situationen kan det komme til nytte.

rsync test run

før du kører en rsync-kommando, er det altid vigtigt at kontrollere, at kommandoen udfører handlingen som forventet. Hvis du vil teste rsync-handlingen for en bestemt kommando, skal du bruge flaget “- n” eller “-dry-run”.

$ rsync-avn primary/ target

$ rsync-avn primary target

Her viser output, hvad rsync ville udføre, hvis kommandoen faktisk blev kørt. Når du tester, så glem ikke at bruge “-v” flag for at få en nøjagtig gengivelse af, hvad der sker.

Rsync over en fjernforbindelse

Dette er en anden interessant funktion rsync understøtter. Hvis din backup-placering er et sted fjernt, kan du nemt konfigurere rsync til at udføre backup på den eksterne placering via SSH. Begge maskiner skal dog have rsync installeret. Desuden skal begge systemer også have SSH-nøgler indstillet.

klar? Lad os komme i gang. Først er det arkivsynkroniseringen.

$ rsync-a <local_dir><brugernavn><remote_host><
destination_dir>

Her, denne operation kaldes et “push”, fordi det skubber en mappe fra det lokale system til et fjernsystem. Det modsatte er kendt som”pull”.

$ rsync-a <brugernavn><remote_host><source_dir><local_dir>

rsync behandler det første argument som kilde, den anden som destination.

nyttige rsync-indstillinger

Rsync understøtter masser af muligheder. Alle tjener deres eget formål. Men for det meste bruges kun en håndfuld af dem det meste af tiden. I dette afsnit, lad os få et kig på nogle nyttige rsync muligheder.

det meste af tiden komprimeres de(n) fil (er), du skal synkronisere, ikke. Ved hjælp af komprimering kan du spare både tid og båndbredde på bekostning af lidt ekstra processorkraft. Rsync tilbyder komprimering som standard. For at udføre komprimeret synkronisering skal du bruge flaget” – å”.

$ rsync-av <kilde><destination>

dette interessante flag kombinerer funktionen af både “-Progress” og “-partial” flag. Den første er at vise en statuslinje for overførslen, og den anden er at aktivere genoptagelse af afbrudt overførsel. Begge disse funktioner er kombineret i” – P ” flag.

$ rsync -avzP <source><destination>

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

$ rsync-AVSP <kilde><destination>

Her uploadede rsync ikke alle filerne igen. I stedet sprang det over dem, der slet ikke ændrede sig. I dette eksempel sprang det over alle filerne, da de alle er til stede i destinationsmappen.

Hvad hvis du har slettet en fil fra kildekataloget? Som standard sletter rsync ikke noget fra destinationsmappen. For at tvinge rsync til at slette filer skal du bruge flaget “–slet”. Brug dog dry run til at teste, om kommandoen fungerer, som du vil.

$ rsync-avn –delete <kilde><destination>

som standard synkroniserer rsync hver enkelt fil/mappe fra kilden til destinationsmappen. I visse situationer kan du medtage / ekskludere bestemte filer fra synkronisering. Rsync tilbyder praktiske muligheder som” –ekskluder “og” – inkluder ” for at ekskludere/inkludere bestemte filer. Pass filmønsteret som værdien for disse argumenter.

$ rsync-avn –ekskluder=<mønster> –include=<mønster>

Du kan også definere den største filstørrelse, som rsync skal synkronisere. For at gøre det skal du bruge flaget “–maks.størrelse” efterfulgt af filstørrelsen.

$ rsync-avn –maks-størrelse=’10k’ <kilde><destination>

rsync har en anden interessant funktion i ærmet. Har du ikke længere brug for kildefilen efter synkronisering? Rsync kan gøre det, ikke noget problem. Sørg dog for, at du ikke kører rsync med “-Slet” – flag. Ellers vil rsync slette de synkroniserede filer fra destinationen!

$ rsync-av –remove-source-files <source><destination>

endelige tanker

disse er blot nogle almindelige og enkle scenarier for rsync-brug. Det tilbyder meget mere end det. Det er muligt at automatisere rsync-operationer ved hjælp af enten rsync-dæmon eller anden scripting. Forhåbentlig var denne vejledning nyttig til at komme i gang med rsync.

interesseret i mere rsync? Nå, du kan bruge rsync som en fil kopimaskine. Det er mere effektivt og intelligent end cp. Mere dybdegående funktioner og brug kan findes i rsync man side.

$ man rsync

Nyd!



Skriv et svar

Din e-mailadresse vil ikke blive publiceret.