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ællerrsync
, at den skal synkronisere mapper rekursivt, overføre specielle og blok-enheder, bevare symbolske links, ændringstider, grupper, ejerskab og tilladelser. -
-z
,--compress
. Denne indstilling tvingerrsync
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, viserrsync
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, sletterrsync
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 errsync
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/
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/
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.