Hvordan synkronisere to Apache-webservere/nettsteder ved hjelp av Rsync


Det er så mange veiledninger tilgjengelig på nettet for å speile eller ta en sikkerhetskopi av nettfilene dine med forskjellige metoder, her lager jeg denne artikkelen for fremtidig referanse, og her skal jeg bruke en veldig enkel og allsidig kommando av Linux for å lage en sikkerhetskopi av nettstedet ditt. Denne opplæringen vil hjelpe deg med å synkronisere data mellom de to webserverne dine med «Rsync».

Hensikten med å lage et speil av nettserveren med Rsync er at hvis hovednettserveren din svikter, kan backupserveren ta over for å redusere nedetiden på nettstedet ditt. Denne måten å lage en webserver backup på er veldig god og effektiv for små og mellomstore nettbedrifter.

Fordeler med å synkronisere webservere

De viktigste fordelene med å lage en webserver-sikkerhetskopi med rsync er som følger:

  1. Rsync synkroniserer bare de bytene og blokkene med data som er endret.
  2. Rsync har muligheten til å sjekke og slette de filene og katalogene på backupserveren som har blitt slettet fra hovedwebserveren.
  3. Den tar seg av tillatelser, eierskap og spesielle attributter mens den kopierer data eksternt.
  4. Den støtter også SSH-protokollen for å overføre data på en kryptert måte slik at du kan være trygg på at all data er trygg.
  5. Rsync bruker komprimerings- og dekompresjonsmetode mens den overfører data som bruker mindre båndbredde.

Hvordan synkronisere to Apache-webservere

La oss fortsette med å sette opp rsync for å lage et speil av webserveren din. Her skal jeg bruke to servere.

Hovedserver
  1. IP-adresse: 192.168.0.100
  2. Vertsnavn: webserver.example.com
Backup Server
  1. IP-adresse: 192.168.0.101
  2. Vertsnavn: backup.example.com

Trinn 1: Installer Rsync Tool

Her i dette tilfellet vil nettserverdata for webserver.example.com bli speilet på backup.example.com. Og for å gjøre det først, må vi installere Rsync på begge serverne ved hjelp av følgende kommando.

[root@tecmint]# yum install rsync        [On Red Hat based systems]
[root@tecmint]# apt-get install rsync    [On Debian based systems]

Trinn 2: Opprett en bruker for å kjøre Rsync

Vi kan sette opp rsync med root-bruker, men av sikkerhetsgrunner kan du opprette en uprivilegert bruker på hovednettserveren, dvs. webserver.example.com for å kjøre rsync.

[root@tecmint]# useradd tecmint
[root@tecmint]# passwd tecmint

Her har jeg opprettet en bruker «tecmint» og tildelt bruker et passord.

Trinn 3: Test Rsync-oppsettet

Det er på tide å teste rsync-oppsettet på backupserveren (dvs. backup.example.com), og for å gjøre det, skriv inn følgende kommando.

[root@backup www]# rsync -avzhe ssh [email :/var/www/ /var/www
Eksempelutgang
[email 's password:

receiving incremental file list
sent 128 bytes  received 32.67K bytes  5.96K bytes/sec
total size is 12.78M  speedup is 389.70

Du kan se at rsync-en din nå fungerer helt fint og synkroniserer data. Jeg har brukt «/var/www» for å overføre; du kan endre mappeplasseringen i henhold til dine behov.

Trinn 4: Automatiser synkronisering med SSH-passordløs pålogging

Nå er vi ferdige med rsync-oppsett og nå er det på tide å sette opp en cron for rsync. Siden vi skal bruke rsync med SSH-protokollen, vil ssh be om autentisering, og hvis vi ikke gir et passord for å cron, vil det ikke fungere. For å fungere problemfritt, må vi sette opp passordløse ssh-pålogginger for rsync.

Her i dette eksemplet gjør jeg det som root for å bevare fileierskap også, du kan også gjøre det for alternative brukere.

Først genererer vi en offentlig og privat nøkkel med følgende kommandoer på backup-serveren (dvs. backup.example.com).

[root@backup]# ssh-keygen -t rsa -b 2048

Når du skriver inn denne kommandoen, vennligst ikke oppgi passordfrase og klikk enter for Tøm passord slik at rsync cron ikke trenger noe passord for å synkronisere data.

Eksempelutgang
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
9a:33:a9:5d:f4:e1:41:26:57:d0:9a:68:5b:37:9c:23 [email 
The key's randomart image is:
+--[ RSA 2048]----+
|          .o.    |
|           ..    |
|        ..++ .   |
|        o=E *    |
|       .Sooo o   |
|       =.o o     |
|      * . o      |
|     o +         |
|    . .          |
+-----------------+

Nå er vår offentlige og private nøkkel generert, og vi må dele den med hovedserveren slik at hovednettserveren vil gjenkjenne denne sikkerhetskopieringsmaskinen og tillate den å logge på uten å spørre om noe passord mens du synkroniserer data.

[root@backup html]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email 

Prøv nå å logge på maskinen, med «ssh ‘[email ‘”, og sjekk inn .ssh/authorized_keys.

[root@backup html]# [email 

Nå er vi ferdige med å dele nøkler. For å vite mer i dybden om SSH-passord mindre pålogging, kan du lese artikkelen vår om det.

  1. SSH passordløs pålogging i 5 enkle trinn

Trinn 5: Planlegg Cron for å automatisere synkronisering

La oss sette opp en cron for dette. For å sette opp en cron, vennligst åpne crontab-filen med følgende kommando.

[root@backup ~]# crontab –e

Den åpner /etc/crontab-filen for å redigere med standardredigeringsprogrammet. Her I dette eksemplet skriver jeg en cron for å kjøre den hvert 5. minutt for å synkronisere dataene.

*/5        *        *        *        *   rsync -avzhe ssh [email :/var/www/ /var/www/

Cron- og rsync-kommandoen ovenfor synkroniserer ganske enkelt "/var/www/" fra hovednettserveren til en backupserver i hver 5 minutter. Du kan endre konfigurasjonen av tid og mappeplassering i henhold til dine behov. For å være mer kreativ og tilpasse med kommandoen Rsync og Cron, kan du sjekke ut våre mer detaljerte artikler på:

  1. 10 Rsync-kommandoer for å synkronisere filer/mapper i Linux
  2. 11 Cron-planleggingseksempler i Linux