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:
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.
Har du brug for at klone din Linux-harddisk eller -partition? Brug et af disse drevkloningsværktøjer til at klone din Linux-disk.
- Linux
- Data backup
- Linux
- Cloud Backup
- Hjemme netværk
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.