Har du nogensinde bekymret dig om at miste dine data, eller bliver du træt af at udføre manuelle sikkerhedskopier dagligt eller ugentligt? Brug rsync kommando og automatisk synkronisere dine lokale filer til en ekstern server så ofte som ønsket uden manuel indgriben. Bemærk venligst, at denne vejledning kræver adgang til en ekstern Linux-server (f. AWS), og er skrevet under Ubuntu 20.04, selvom enhver Linux-distro burde fungere fint.

Installer rsync

Før noget, tjek om eller ej rsync er installeret. Kør denne kommando på både din lokale pc og webserver:

rsync --version

Hvis du får den aktuelle rsync-version til gengæld, så er du klar til næste afsnit. Ellers, hvis du modtager en Kommando ikke fundet fejl, kan du installere rsync med denne kommando:

sudo apt-get -y installer rsync

Generer SSH-nøgle

Vi vil bruge en SSH nøgle for at autentificere forbindelsen mellem vores lokale pc og fjernserveren. For at generere en ny SSH-nøgle på din lokale pc i terminalen skal du køre kommandoen:

Sådan opsætter du SSH på Linux og tester din opsætning: En begyndervejledning
instagram viewer

Har du brug for fjernadgang til din Linux-computer eller server? Sådan opsætter og konfigurerer du SSH på Linux, Windows og mobil.

ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key

Når du bliver bedt om en adgangskode, skal du lade den stå tom og trykke på Enter-tasten to gange. Dette vil generere to nye filer i din ~/.ssh/ mappe navngivet rsync.key som er den private nøgle, og rsync.key.pub, den offentlige nøgle.

Konfigurer fjernserver

Selvom det ikke er nødvendigt, vil vi til denne vejledning oprette en ny bruger på fjernserveren til rsync-forbindelser og for at gemme alle backupfiler. Log ind på fjernserveren via SSH og kør denne kommando:

sudo useradd -m rsync

Ovenstående eksempel bruger brugernavnet rsync, men du kan ændre det til hvad du ønsker. Det -m option fortæller simpelthen Linux om at oprette en hjemmemappe til vores nye bruger.

For at tillade din lokale pc at godkende, skal den offentlige SSH-nøgle, der blev genereret i det foregående afsnit, kopieres over til fjernserveren. Åbn /~.ssh/rsync.key.pub fil i en tekst editor og du vil se en stor streg, der ligner noget.

ssh-rsa bruger@vært

Denne lange linje er den offentlige SSH-nøgle. Kopier det til din udklipsholder, og kør disse kommandoer på din fjernserver:

sudo su rsync
mkdir -m 0700 $HOME/.ssh
ekko "ssh-rsa AAAAB... bruger@vært" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys

I den næstsidste kommando skal du erstatte teksten mellem anførselstegnene med den lange offentlige SSH-nøglelinje. Det er det, din lokale pc vil nu være i stand til at godkende med din fjernserver.

Konfigurer ssh config fil

For nemheds skyld skal du tilføje en post til ~/.ssh/config fil på din lokale pc for nemt at oprette forbindelse til fjernserveren. Åbn filen på din lokale pc med kommandoen.

nano $HOME/.ssh/config

Tilføj en post for fjernserveren i filen, såsom:

vært backup_server
 værtsnavn 192.168.0.24
 bruger rsync
 IdentityFile ~/.ssh/rsync

Skift værtsnavnet til IP-adressen på din fjernserver, og hvis du brugte et andet brugernavn end "rsync", skal du også ændre det. Du kan bruge hvad som helst du ønsker til værten, men i dette eksempel blev "backup_server" brugt. Gem og luk filen ved at trykke på Ctrl+X efterfulgt af "Y" og Enter-tasterne.

Test din SSH-forbindelse til fjernserveren med kommandoen.

ssh backup_server

Forudsat at alt er konfigureret korrekt, bør du nu være logget på din fjernserver via SSH. Luk forbindelsen med kommandoen.

Afslut

Synkroniser dine filer

Test nu rsync funktionalitet, og for eksempel for at synkronisere dit dokumentbibliotek på din lokale pc, kør kommandoen:

rsync -avz --progress ~/Documents/ backup_server:~/Documents

Den første forekomst af ~/Dokumenter/ angiver den lokale fil eller mappe, der skal synkroniseres, backup_server svarer til den post, der er tilføjet til ~/.ssh/config fil og slutningen :~/Dokumenter angiver blot at uploade alt til /Documents-mappen på fjernserveren i forhold til hjemmemappen.

Log ind på fjernserveren, og du skulle se en ny mappe med dokumenter, der er synkroniseret med den på din lokale pc. Hver gang du kører ovenstående kommando, vil kun filer, der er blevet ændret siden sidste gang, blive uploadet, så du uploader ikke konstant hele indholdet af mappen.

Automatiser via Crontab

Nu hvor alt er testet og fungerer korrekt, kan vi nemt automatisere hele processen ved at tilføje et crontab-job til vores lokale pc. For automatisk at synkronisere din lokale mappe til fjernserveren hvert 15. minut, skal du køre kommandoen i terminalen.

(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab

Du får muligvis en "no crontab for user" besked, og du kan bare ignorere den. Skift Dokumenter mappe til det, du ønsker at sikkerhedskopiere, men sørg for at efterlade en skråstreg for mapper, ellers vil de ikke sikkerhedskopiere ordentligt.

Kontroller for at sikre, at crontab-jobbet blev tilføjet med kommandoen.

crontab -l

Hvis du ser crontab-jobbet, der lige blev tilføjet, så er alt på plads. Vent 15 minutter, tjek din fjernserver, og alle nødvendige filer skulle være der. Fra nu af vil alle ændringer, der er foretaget i dine filer, automatisk blive uploadet til fjernserveren hvert 15. minut.

Download fra Remote Server

Du kan også bruge rsync for at downloade filer fra fjernserveren og synkronisere dem til din lokale pc. Ved at bruge ovenstående /Documents-bibliotekeksempel, kør kommandoen i terminalen:

rsync -chavzP backup_server:~/Documents/ ~/Documents

Det ~./Dokumenter biblioteket på din lokale pc skulle nu være et spejlbillede af fjernserveren.

Inkluder og ekskludér mønstre

Hvis du nogensinde har brug for at synkronisere kun filer, der matcher et bestemt mønster, f.eks. slutter med .html du kan bruge --omfatte mønster. Kør kommandoen i terminalen.

rsync -avz --inkluder "*.html" --progress ~/mysite/ backup_server:~/public_html

Tjek fjernserveren, og du vil kun se filer med en .html-udvidelse fra det lokale /mysite/-bibliotek, der er blevet uploadet til /public_html/-fjernmappen. På samme måde kan du også synkronisere alt undtagen visse filer med --udelukke mulighed. For eksempel vil følgende kommando synkronisere alle filer undtagen dem med en .txt udvidelse.

rsync -avz --ekskluder "*.txt" --fremskridt ~/mysite/ backup_server:~/public_html

Synkroniser to lokale mapper

Hvis det nogensinde er nødvendigt, kan du også synkronisere to lokale mapper med kommandoen.

rsync -zvr ~/kilde/katalog ~/destination/katalog

Denne kommando fungerer nøjagtigt det samme, som når du synkroniserer til en ekstern server, den eneste forskel er, at det er to lokale mapper.

Tag det roligt

Du kan nu ånde lettet op ved at vide, at dine chancer for tab af data nu er væsentligt lavere. I denne artikel har du lært hvad rsync er, hvordan man genererer og installerer en SSH-nøgle, definerer en server i ~./.ssh/config fil, synkroniser et lokalt og eksternt bibliotek, og automatiser hele processen via crontab. Fremover vil alle nødvendige filer altid blive synkroniseret med din fjernserver med kun 15 minutters forsinkelse.

E-mail
Sådan klones din Linux-harddisk: 4 metoder

Har du brug for at klone din Linux-harddisk eller -partition? Brug et af disse drevkloningsværktøjer til at klone din Linux-disk.

Relaterede emner
  • Linux
  • Data backup
  • Linux
  • Cloud Backup
  • Hjemme netværk
Om forfatteren
Matt Dizak (13 artikler udgivet)Mere fra Matt Dizak

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et skridt mere!!!

Bekræft venligst din e-mailadresse i den e-mail, vi lige har sendt til dig.

.