Rsync-kommando i Linux med eksempler

rsync er et hurtigt og alsidigt kommandolinjeværktøj til synkronisering af filer og mapper mellem to steder via en ekstern shell eller fra/til en ekstern Rsync-dæmon. Det giver hurtig inkrementel filoverførsel ved kun at overføre forskellene mellem kilden og destinationen.

Rsync kan bruges til spejling af data, inkrementelle sikkerhedskopier, kopiering af filer mellem systemer og som erstatning for scp, sftp og cp-kommandoer.

Denne artikel forklarer, hvordan du bruger rsync gennem praktiske eksempler og detaljerede forklaringer på de mest almindelige rsync-muligheder.

Installation af Rsync #

Det rsync-værktøj er præinstalleret på de fleste Linux-distributioner og macOS. Hvis du ikke har rsync installeret på dit system, kan du nemt installere det ved hjælp af din distributions pakkehåndteringsprogram.

Installer Rsync på Ubuntu og Debian #

sudo apt install rsync

Installer Rsync på CentOS og Fedora #

sudo yum install rsync

Rsync Kommandosyntaks #

Hvor vi går ind på, hvordan du bruger rsync-kommandoen, skal vi starte med at gennemgå den grundlæggende syntaks.

Hjælpeudtrykkene rsync har følgende form:

Local to Local: rsync ... ... DESTLocal to Remote: rsync ... ... HOST:DESTRemote to Local: rsync ... HOST:SRC... 
  • OPTION – Rsync-indstillingerne.
  • SRC – Kildemappe.
  • DEST – Målmappe.
  • USER – Fjernbrugernavn.
  • HOST – Fjernværtsnavn eller IP-adresse.

rsync indeholder en række indstillinger, der styrer, hvordan kommandoen opfører sig. De mest anvendte indstillinger er:

  • -a, --archive, arkivtilstand, svarer til -rlptgoD. Denne indstilling fortæller rsync, at den skal synkronisere mapper rekursivt, overføre specielle og blok-enheder, bevare symbolske links, ændringstider, grupper, ejerskab og tilladelser.
  • -z, --compress. Denne indstilling tvinger rsync til at komprimere dataene, når de sendes til destinationsmaskinen. Brug kun denne indstilling, hvis forbindelsen til fjernmaskinen er langsom.
  • -P, svarer til --partial --progress. Når denne indstilling bruges, viser rsync en statuslinje under overførslen og beholder de delvist overførte filer. Den er nyttig ved overførsel af store filer via langsomme eller ustabile netværksforbindelser.
  • --delete. Når denne indstilling bruges, sletter rsync uvedkommende filer fra destinationsstedet. Den er nyttig ved spejling.
  • -q, --quiet. Brug denne indstilling, hvis du ønsker at undertrykke meddelelser, der ikke er fejlmeddelelser.
  • -e. Denne indstilling giver dig mulighed for at vælge en anden fjernskal. Som standard er rsync konfigureret til at bruge ssh.

Basisbrug af Rsync #

Det mest grundlæggende tilfælde af brug af rsync er at kopiere en enkelt fil fra en til en anden lokal placering. Her er et eksempel:

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

Brugeren, der kører kommandoen, skal have læsetilladelser på kildeplaceringen og skrivetilladelser på destinationen.

Optagelse af filnavnet fra destinationsplaceringen kopierer filen med det aktuelle navn. Hvis du vil gemme filen under et andet navn, skal du angive det nye navn på destinationsdelen:

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

Den virkelige styrke af rsync kommer når du synkroniserer mapper. Eksemplet nedenfor viser, hvordan du opretter en lokal sikkerhedskopi af webstedets filer:

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

Hvis destinationsmappen ikke findes, opretter rsync den.

Det er værd at nævne, at rsync behandler kildemapper med en afsluttende skråstreg (/) forskelligt. Hvis kildemappen har en afsluttende skråstreg, vil kommandoen kun kopiere mappens indhold til destinationsmappen. Når den afsluttende skråstreg udelades, kopierer rsync kildemappen inde i destinationsmappen.

Brug af rsync til at synkronisere data fra/til en fjernmaskine #

Når du bruger rsync til at overføre data eksternt, skal den være installeret på både kilde- og destinationsmaskinen. De nye versioner af rsync er konfigureret til at bruge SSH som standard fjernshell.

I følgende eksempel overfører vi en mappe fra en lokal til en fjernmaskine:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Hvis du ikke har indstillet en adgangskodefri SSH-logintil fjernmaskinen, vil du blive bedt om at indtaste brugerens adgangskode.

For at overføre data fra en fjernmaskine til en lokal maskine, skal du bruge fjernstedet som kilde:

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

Hvis SSH på fjernværten lytter på en anden port end standard 22 , skal du angive porten ved hjælp af indstillingen -e:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Ved overførsel af store datamængder anbefales det at køre kommandoen rsync i en skærmsession eller at bruge indstillingen -P:

Udelukke filer og mapper #

Der er to muligheder for at udelukke filer og mapper:

Der er to muligheder for at udelukke filer og mapper. Den første mulighed er at bruge --exclude-argumentet og angive de filer og mapper, du ønsker at udelukke på kommandolinjen.

Når du udelukker filer eller mapper, skal du bruge deres relative stier til kildeplaceringen.

I følgende eksempel vises, hvordan du udelukker mapperne node_modules og tmp:

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

Den anden mulighed er at bruge --exclude-from-indstillingen og angive de filer og mapper, du ønsker at udelukke, i en fil.

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

Konklusion #

Vi har vist dig, hvordan du bruger Rsync til at kopiere og synkronisere filer og mapper. Der er meget mere at lære om Rsync på Rsync User’s Manualpage.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.