▷ Rsync Linux: Hvordan bruke og kommandere eksempler

Bruken av kommandoer i Linux er mer enn naturlig siden disse har vært hjertet i Linux i mange år, derfor må vi være klar over måten vi bruker disse kommandoene på, siden noen er praktiske for grunnleggende oppgaver, andre kan være farlig hvis vi ikke håndterer dem riktig. En av de mest funksjonelle Linux -kommandoene er rsync -protokollen som Solvetic vil forklare deg i detalj gjennom denne opplæringen. La oss se først hva er rsync.

For tiden å opprettholde en infrastruktur av alle størrelser uten sikkerhetskopiering kan betraktes som gal, en disk kan mislykkes når som helst, og du kan miste informasjon like verdifull som selskapets regnskap. I dette innlegget vil vi snakke om hvordan du bruker Rsync, et av de beste verktøyene for sikkerhetskopiering på * nix -systemer. Vi vil se fra de mest grunnleggende til mer avanserte eksemplene med skript og eksempler som du kan bruke i arbeidsmiljøet ditt. Det vil være en manual for å vite hvordan du bruker rysnc.

Behovet for å ha den samme informasjonen på forskjellige steder har blitt en som blir stadig sterkere, dette fordi arbeidsområdet vårt er variabelt og vi ønsker å ha verktøyene våre alltid med oss ​​eller til og med som backup -tiltak.

Hva er rsync?Det er et åpen kildekodeverktøy for overføring av filer og kataloger mellom ett sted og et annet. Fordelene er hovedsakelig basert på komprimering av informasjonen som skal sendes, den lar overføringen utføres gjennom en SSH -kanal, og den overfører bare filene og filbitene som er endret i stedet for å overføre hele filen igjen, noe ligner det som skjer når du overfører forskjellene i en fil under Git -versjonskontroll.

Kommandoen rsync (Remote Sync) er en kommando utviklet for kopiering og synkronisering av filer og kataloger, enten eksternt eller lokalt på Linux- eller UNIX -systemer.

Med denne kommandoen kan vi lage kopier fra:

  • Lokalt
  • Ved hjelp av et eksternt skall
  • Gjennom en ekstern rsync -demon

Rsync brukerBlant de forskjellige bruksområdene for rsync er følgende:

  • Automatiske sikkerhetskopier til eksterne servere eller disker.
  • Ekstern fil- og katalogsynkronisering.
  • Vanlig filoverføring.

Rsync fordeler

  • Det er raskere enn scp (Secure Copy) fordi rsync bruker en opplastingsprotokoll som tillater overføring av bare forskjellen mellom filene, første gang den overfører hele filen for andre gang bare endringene som kan eksistere.
  • Den er designet for eksterne sikkerhetskopier.
  • Støtter kopiering av alle filtillatelser, for eksempel eier, myke grupper og hard link.
  • Bruk mindre båndbredde ved å bruke komprimering mens du sender filer.

Rsync har en deltaoverføringsfunksjonalitet som gjør det mulig å redusere mengden data som sendes gjennom nettverket, slik at bare forskjellene mellom kildefilene og de eksisterende filene i den eksterne destinasjonen kan sendes, derfor er rsync ideell for sikkerhetskopiering og duplisering.
Rsync handler i prosessen med å søke etter filer som skal overføres ved hjelp av en lqquick checkqq -algoritme, som har ansvaret for å søke etter filer som har blitt endret.

Rsync -funksjonerNoen av hovedtrekkene er:

  • Integrerer ekskluder alternativfunksjoner som ligner på GNU tar
  • Den har støtte for å kopiere Linux -koblinger, enheter, eiere, grupper og tillatelser
  • Legg til en CVS -ekskluderingsmodus som lar deg ignorere de samme filene som CVS ville ignorere i sin funksjon
  • Krever ikke superbrukerrettigheter (root)
  • Vi kan bruke et eksternt skall som ssh eller rsh
  • Tilbyr pipeline av filoverføringer for å minimere kostnader for nettverksforsinkelse
  • Støtter godkjente eller anonyme rsync -demoner
  • Det er raskere enn scp

Vi skal se hvordan vi bruker rsync og rsync parametere for å kunne utføre oppgaver som rsync kopiere bare nye filer eller rsync slette målfiler.

1. Hvordan bruke rsync

Syntaksen for bruk av denne kommandoen er som følger:

 rsync alternativer ressurs destinasjon 
Rsynk -variablerVed å bruke denne syntaksen kan vi legge til noen variabler som:

  • -v: verbose mode.
  • -r: Dette alternativet kopierer dataene rekursivt uten å etterlate tidsstempler og tillatelse under prosessen.
  • -a: filmodus som tillater rekursiv kopiering av filer og bevarer symbolske lenker, filtillatelser, bruker- og gruppeeierskap, og tidsstempler.
  • -z: Dette alternativet komprimerer dataene i filen.
  • -h: lesbar modus for mennesker, utdatatall i et lesbart format for mennesker.

La oss nå se noen eksempler på hvordan du bruker denne kommandoen. På slutten av opplæringen vil Solvetic gi deg andre parametere for bruk av rsync på Linux.

2. Hvordan installere rsync

Trinn 1
I de fleste nåværende systemer er rsync installert som standard, men hvis det ikke er det, kan vi utføre følgende:

 yum installer rsync (Red Hat - CentOS - Fedora) apt -get install rsync (Debian - Ubuntu)

FORSTØRRE

Steg 2
Uansett må vi bekrefte installasjonen av rsync, i noen systemer som Ubuntu 20 kommer det allerede som standard:

3. Kopier filer og kopier kataloger med rsync


Den første bruken av rsync er å kopiere eller synkronisere en fil eller katalog lokalt. La oss se hvordan du kopierer rsync -filer, kopierer kataloger med rsync og synkroniserer to kataloger med rsync.

Trinn 1
For dette vil vi utføre følgende

 rsync -zvh "fil" "destinasjon" 

Steg 2
Der kan vi se detaljer som:

  • Data sendt
  • Mengden mottatte data
  • Overføringshastighet
  • Generell størrelse

Trinn 3
Hvis saken skal kopiere en katalog lokalt, vil vi utføre følgende:

 rsync -zvh "katalog" "destinasjon" 

4. Kopier eller synkroniser eksterne rsynkroniseringsmapper eller ekstern katalog

Trinn 1
Vi kan kopiere eller synkronisere filer lokalt til en ekstern datamaskin, for dette bruker vi følgende syntaks:

 rsync -avz file / [email protected]: / destination / 

Steg 2
Hver gang vi bruker den eksterne IP -en, må vi skrive inn rotpassordet til den eksterne datamaskinen. Hvis vi skal kopiere en ekstern katalog til vår lokale server, bruker vi følgende syntaks:

 rsync -azvh [email protected]: / destinasjon / katalog / 

5. Rsync SSH hvordan du bruker


SSH (Secure Shell) er en ekstra sikkerhetsmekanisme for dataoverføring, dette oppnås siden SSH bruker en sikker tilkobling med svært standardisert kryptering.

Trinn 1
Hvis vi skal kopiere en lokal fil til en ekstern datamaskin med SSH, må vi bruke alternativet "-e" med navnet på protokollen du vil bruke:

 rsync -avzhe ssh [email protected]: / destinasjon / katalog 

Steg 2
For å kopiere en lokal fil til en ekstern server bruker vi følgende syntaks:

 rsync -avzhe ssh "file" [email protected]: / destination / 

Trinn 3
Vi kan validere i den eksterne katalogen at filen eller katalogen er kopiert:

FORSTØRRE

6. Rsync viser fremgang av fil- eller katalogoverføring


Dette er en metode for bedre overføringsadministrasjon, dette oppnås med parameteren -progress:
 rsync -avzhe ssh --progress / source [email protected]: / destinasjon 

7. Inkluder eller ekskluder rsync -kataloger


Alternativene -include og -exclude er alternativer som lar oss enten inkludere eller ekskludere filer, de lar oss også angi filer eller kataloger som skal inkluderes i synkroniseringen eller ekskludere filer og mapper som ikke skal overføres.

Bruken er som følger:

 rsync -avze ssh -inkluder 'Letter *' --exclude ' *' [email protected]: / destination 

8. Rsync slette filer og kataloger


Hvis en fil eller katalog ikke er i kilden, men allerede er tilgjengelig i destinasjonen, kan vi slette filen eller katalogen under synkroniseringsprosessen, for dette kan vi bruke -delete for å slette elementene som ikke er på destinasjonsdatamaskinen, vil vi utføre følgende:
 rsync -avz -slett [email protected]: / destinasjon 

9. Rsync Begrens filstørrelse


Med parameteren -max -størrelse kan vi indikere hvilken som er maksimal størrelse på objektene som skal overføres med rsync, dette bidrar til å kontrollere det eksterne rommet:
 rsync -avzhe ssh --max -size = '300k' / source / [email protected]: / destinasjon 

10. Rsynk slette kildefiler hvis overføringen var vellykket

Med variabelen -remove-source-files er det mulig at filene som har blitt synkronisert i kilden bare elimineres hvis hele prosessen har vært korrekt, for dette vil vi bruke følgende. Vi ser at kildefilen er slettet.

 rsync --remove-source-files -zvh "file" / destination / 

11. Kjør rsync uten å påvirke filer


Dette er et ideelt alternativ for folk som ikke fullt ut kjenner kraften til rsync siden det viser hva kommandoen vil gjøre, men som ikke påvirker opprinnelsen, dette oppnås for eksempel med parameteren -dry -run. Vi kan se at filen fortsatt er der.
 rsync --dry-run --remove-source-files -zvh "file" / destination / 

12. Begrens rsync -båndbredde


Med parameteren -bwlimit vil det være mulig å definere hvilken nettverkshastighet rsync skal bruke for synkroniseringsoppgaver, dette oppnås som følger:
 rsync --bwlimit = 200 -avzhe ssh / source / [email protected]: / destination 

13. Sikkerhetskopiering med Rsync


Noen ganger må vi sikkerhetskopiere viss informasjon før vi gjør endringer, og i tilfelle det oppstår en feil under sikkerhetskopiering, starter vi med et laboratorium som sikkerhetskopierer fra en mappe til en annen. På denne måten vil vi lage en sikkerhetskopi med rsync på en komplett og trygg måte.

Trinn 1
Vi starter med å bekrefte at rsync er installert.

 [bruker @ Solvetic ~] $ som rsync / usr / bin / rsync
Steg 2
Vi lager to mapper for kilden og destinasjonen til filene.
 mkdir {backup1, backup2} 
Trinn 3
Vi oppretter flere filer i backup1 -mappen, i dette tilfellet spiller størrelsen på filene ingen rolle.
 [bruker @ Solvetic ~] $ touch backup1 / fil {1… 75} 
Trinn 4
Katalogen skal ha 75 filer. Vi tar backup.
 [bruker @ Solvetic ~] $ ls backup1 / fil1 fil14 fil19 fil23 fil28 fil32 fil37 fil41 fil46 fil50 fil55 fil6 fil64 fil69 fil73 fil10 fil15 fil2 fil24 fil29 fil33 fil38 fil42 fil47 fil51 fil56 fil60 fil65 fil7 fil74 fil11 fil16 fil20 fil25 fil3 fil34 fil39 fil43 fil48 fil5 fil57 fil61 fil66 fil70 fil75 fil12 fil17 fil21 fil26 fil30 fil35 fil4 fil44 fil49 fil53 fil58 fil62 fil67 fil71 fil8 fil13 fil18 fil22 fil27 fil31 fil36 fil40 fil45 fil5 fil54 fil59 fil63 fil68 fil72 fil9
Trinn 5
For å sikkerhetskopiere filene til backup2 bruker vi. Kilden må ende på / ellers vil den kopiere mappen og ikke innholdet.
 rsync -r backup1 / backup2 
Trinn 6
HVIS vi går inn i backup2 kan vi se de 75 filene, vi kan til og med bekrefte at de er to identiske kataloger som bruker diff.
 [bruker @ Solvetic ~] $ diff backup1 backup2 
Trinn 7
I tilfelle du oppretter en softlink fra en fil i katalog 1
 ln -s file30 file100 
Trinn 8
Å bruke rsync med -r vil ikke synkronisere softlink i dette tilfellet vi bruker. Hvis vi ser på denne tiden, vil vi få softlink synkronisert.
 rsync -a backup1 / backup2 
MerkHvis vi ikke er sikre på hva vi skal støtte, kan vi bruke en simulering med -n og i forbindelse med -v kan det være veldig nyttig.
 [bruker @ Solvetic ~] $ rsync -anv backup1 / backup2 sender inkrementell filliste sendt 606 byte mottatt 12 byte 1236,00 byte / sek totalstørrelse er 6 speedup er 0,01 (DRY RUN)

14. Andre Rsync -parametere


Som vi nevnte, er dette noen av tilleggsparametrene som skal brukes med rsync på Linux:

Rsync -parametere

  • -t, --times: behold tidsendring
  • -g, --gruppe: behold grupper
  • -o, -eier: behold eieren av objektet
  • -B, --block-size = SIZE: tvinge en fast kontrollsumblokkstørrelse
  • T, --temp-dir = DIR: denne verdien oppretter midlertidige filer i DIR-katalogen
  • z, --komprimere: komprimere fildataene under overføring
  • -4, --ipv4: bruk bare IPv4
  • -6, --ipv6: bruk bare IPv6

Det er mange flere variabler, men disse er mer enn nok til at du får mest mulig ut av rsync på Linux. Vi har sett hvordan vi bruker rsync med de mest nyttige alternativene, sammen med verktøy som cron og bash scripts, python vil vi ha alt vi trenger for å ta sikkerhetskopier uten behov for tredjepartsverktøy.

wave wave wave wave wave