Android

Hvordan overføre filer med rsync over ssh

Linux Automated Backup - Part 2 - SSH and Rsync Setup

Linux Automated Backup - Part 2 - SSH and Rsync Setup

Innholdsfortegnelse:

Anonim

Når det gjelder overføring av filer mellom systemer i nettverket, har Linux- og Unix-brukere mange verktøy til rådighet.

SSH og FTP er de mest populære protokollene for dataoverføring. Mens FTP er veldig populært, bør du alltid bruke SSH, da det er den sikreste måten å overføre filene dine på.

Det er spesialiserte verktøy for filoverføring over SSH som scp og sftp men ingen av dem har alle funksjonene som rsync gir. rsync kan brukes til speiling av data, inkrementell sikkerhetskopi, kopiering av filer mellom systemer og så videre.

I denne opplæringen vil vi forklare hvordan du kopierer filer med rsync over SSH.

Krav

  • rsync verktøyet må installeres på både destinasjonssystemet og kildesystemene. Hvis den ikke er installert, kan du installere den ved å bruke distribusjonens pakkebehandling:

    Ubuntu og Debian:

    sudo apt install rsync

    CentOS og Fedora:

    sudo yum install rsync

    SSH-tilgang til den eksterne datamaskinen.

    Brukeren som kjører rsync kommandoen og den eksterne SSH-brukeren, må ha passende tillatelser til å lese og skrive filer.

Bruke rsync å overføre filer over SSH

Med rsync kan du overføre filer og kataloger over SSH fra og til eksterne servere.

Den generelle syntaks for overføring av filer med rsync er som følger:

Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…

Der SRC er kildekatalogen, er DEST destinasjonskatalogen USER er det eksterne SSH-brukernavnet og HOST er den eksterne SSH-verten eller IP-adressen.

De nyere versjonene av rsync er konfigurert til å bruke SSH som standard eksternt skall, slik at du kan utelate -e ssh alternativet.

For å overføre en enkelt fil /opt/file.zip fra det lokale systemet til /var/www/ katalogen på fjernsystemet med IP 12.12.12.12 , vil du for eksempel kjøre:

rsync -a /opt/file.zip [email protected]:/var/www/

Alternativet -a står for arkivmodus som vil synkronisere kataloger rekursivt, overføre spesial- og blokkeringsenheter, bevare symbolske lenker, endringstider, gruppe, eierskap og tillatelser.

Hvis filen finnes på den eksterne serveren, blir den overskrevet. Hvis du vil lagre filen under et annet navn, spesifiser det nye navnet:

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Hvis du vil overføre data fra en ekstern til en lokal maskin, bruker du den eksterne plasseringen som kilde og den lokale plasseringen som destinasjon:

rsync -a [email protected]:/var/www/file.zip /opt/

Overføring av kataloger med rsync over SSH er det samme som å overføre filer.

Det er viktig å vite at rsync gir forskjellig behandling til kildekatalogene med en slash / . Når kildekatalogen har en etterfølgende skråstrek, vil rsync bare kopiere innholdet i kildekatalogen til destinasjonskatalogen. Når den etterfølgende skråstrek er utelatt, vil kildekatalogen bli kopiert i destinasjonsmappen.

For eksempel for å overføre den lokale /opt/website/images/ katalogen til /var/www/images/ katalogen på en ekstern maskin du skriver:

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

Bruk alternativet - --delete hvis du vil synkronisere den lokale og eksterne katalogen. Vær forsiktig når du bruker dette alternativet, da det vil slette filer i destinasjonskatalogen hvis de ikke finnes i kildekatalogen.

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

Hvis SSH på den eksterne verten lytter på en annen port enn standard 22 , spesifiser porten ved å bruke alternativet -e . Hvis SSH for eksempel lytter på port 3322 , vil du bruke:

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

Når du overfører store datamengder, anbefales det å kjøre rsync kommandoen i en skjermøkt eller bruke -P alternativet som forteller rsync å vise en fremdriftslinje under overføringen og beholde de delvis overførte filene:

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

Konklusjon

Vi har vist deg hvordan du bruker rsync over SSH til å kopiere og synkronisere filer og kataloger.

Det kan også være lurt å lese hvordan du ekskluderer filer eller kataloger med rsync .

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

rsync terminal