Android

Hvordan bruke rsync for lokal og ekstern dataoverføring og synkronisering

Linux/Mac Terminal Tutorial: How To Use The rsync Command - Sync Files Locally and Remotely

Linux/Mac Terminal Tutorial: How To Use The rsync Command - Sync Files Locally and Remotely

Innholdsfortegnelse:

Anonim

Rsync er et raskt og allsidig kommandolinjeværktøy som synkroniserer filer og mapper mellom to lokasjoner over et eksternt skall, eller fra / til en ekstern Rsync-demon. Det gir rask inkrementell filoverføring ved å overføre bare forskjellene mellom kilden og destinasjonen.

Rsync kan brukes til å speile data, inkrementelle sikkerhetskopieringer, kopiere filer mellom systemer og som erstatning for scp , sftp og cp til daglig bruk.

I denne opplæringen vil vi vise deg hvordan du bruker rsync gjennom praktiske eksempler og detaljerte forklaringer på de vanligste rsync alternativene.

Installerer Rsync

rsync verktøyet er forhåndsinstallert på de fleste Linux-distribusjoner og macOS. Du kan sjekke om det er installert på systemet ditt ved å skrive:

rsync --version

rsync version 3.1.2 protocol version 31

Installer Rsync på Ubuntu og Debian

sudo apt install rsync

Installer Rsync på CentOS og Fedora

sudo yum install rsync

Rsync kommandosyntax

Før du går inn på hvordan du bruker rsync kommandoen, la oss begynne med å gå gjennom den grunnleggende syntaks.

rsync har følgende form:

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

  • OPTION - Alternativer for rsync. SRC - Kildekatalog. DEST - Destinasjonskatalog. USER - Eksternt brukernavn. HOST - Eksternt vertsnavn for IP-adresse.

rsync gir en rekke alternativer som kontrollerer alle aspekter av atferden. De mest brukte alternativene er:

  • -a , --archive , --archive , tilsvarer -rlptgoD . Dette alternativet forteller rsync å synkronisere kataloger rekursivt, overføre spesielle og blokkere enheter, bevare symbolske lenker, endringstider, gruppe, eierskap og tillatelser. -z , - --compress . Dette alternativet vil tvinge rsync til å komprimere dataene når de sendes til destinasjonsmaskinen. Bruk dette alternativet bare hvis tilkoblingen til den eksterne maskinen er treg. -P , tilsvarer - --partial --progress . Når dette alternativet brukes, vil rsync vise en fremdriftslinje under overføring og for å beholde delvis overførte filer. Det er nyttig når du overfører store filer over treg eller ustabil nettverkstilkobling. --delete . Når du bruker dette alternativet, vil rsync slette fremmede filer fra destinasjonsstedet. Det er nyttig for speiling. -q , - --quiet . Bruk dette alternativet hvis du vil undertrykke meldinger som ikke er feil. -e . Dette alternativet lar deg velge et annet eksternt skall. Som standard er rsync konfigurert til å bruke ssh.

Grunnleggende Rsync-bruk

For å kopiere en enkelt fil fra en til et annet lokalt sted, kjører du følgende kommando:

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

Brukeren som kjører kommandoen, må ha lesetillatelser på destinasjonsstedet og skrivetillatelser på destinasjonen.

Hvis du unnlater filnavnet fra destinasjonsstedet, kopieres filen med det gjeldende navnet. Hvis du vil lagre filen under et annet navn, spesifiser det nye navnet på destinasjonsdelen:

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

I eksemplet nedenfor lager vi en lokal sikkerhetskopi av våre nettstedfiler:

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

Hvis destinasjonskatalogen ikke eksisterer, vil rsync opprette den.

Det er verdt å nevne at rsync gir forskjellig behandling til kildekatalogene med en etterfølgende skråstrek / . Hvis du legger til en etterfølgende skråstrek i kildekatalogen, vil den bare kopiere innholdet i katalogen til destinasjonsmappen. Når den etterfølgende skråstrek er utelatt, vil rsync kopiere kildekatalogen i destinasjonskatalogen.

Hvordan bruke Rsync til å synkronisere data fra / til en ekstern maskin

Når du bruker rsync for fjernoverføring, må den installeres på både kilden og destinasjonsmaskinen. De nye versjonene av rsync er konfigurert til å bruke SSH som standard eksternt skall.

I eksemplet nedenfor overfører vi en katalog fra en lokal til en ekstern maskin:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/ Hvis du ikke har angitt en passordløs SSH-pålogging til den eksterne maskinen, blir du bedt om å oppgi brukerpassordet.

Hvis du vil overføre data fra en ekstern til en lokal maskin, må du bruke den eksterne plasseringen som en kilde:

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

Hvis SSH på den eksterne verten lytter på en annen port enn standard 22, kan du spesifisere porten ved å bruke alternativet -e :

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

Når du overfører store datamengder, anbefales det å kjøre rsync kommandoen i en skjermøkt eller bruke -P alternativet:

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

Ekskluder filer og kataloger

Når du ekskluderer filer eller kataloger, må du bruke deres relative stier til kildeplassering.

Det er to alternativer for å ekskludere filer og kataloger. Det første alternativet er å bruke - --exclude argumentet og spesifisere filene og katalogene du vil ekskludere på kommandolinjen.

I det følgende eksemplet ekskluderer vi node_modules og tmp katalogene som er plassert i src_directory :

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

Det andre alternativet er å bruke - --exclude-from argumentet og spesifisere filene og katalogene du vil ekskludere i en fil.

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

node_modules tmp

Konklusjon

I denne opplæringen lærte du hvordan du bruker Rsync til å kopiere og synkronisere filer og kataloger. Det er mye mer å lære om Rsync på Rsync Brukerhåndbok side.

Legg gjerne igjen en kommentar hvis du har spørsmål.

rsync terminal