Har du noen gang bekymret deg for å miste dataene dine, eller blitt lei av å utføre manuelle sikkerhetskopier daglig eller ukentlig? Bruke rsync kommando og automatisk synkroniser de lokale filene dine til en ekstern server så ofte du ønsker uten manuell inngripen. Vær oppmerksom på at denne veiledningen krever tilgang til en ekstern Linux-server (f. AWS), og er skrevet under Ubuntu 20.04, selv om enhver Linux-distro burde fungere fint.

Installer rsync

Før noe, sjekk om eller ikke rsync er installert. Kjør denne kommandoen på både din lokale PC og webserver:

rsync --versjon

Hvis du får den gjeldende rsync-versjonen i retur, er du klar for neste seksjon. Ellers, hvis du mottar en kommando ikke funnet feil, kan du installere rsync med denne kommandoen:

sudo apt-get -y installer rsync

Generer SSH-nøkkel

Vi vil bruke en SSH-nøkkel for å autentisere forbindelsen mellom vår lokale PC og den eksterne serveren. For å generere en ny SSH-nøkkel på din lokale PC i terminalen, kjør kommandoen:

Slik setter du opp SSH på Linux og tester oppsettet ditt: En nybegynnerveiledning
instagram viewer

Trenger du ekstern tilgang til Linux-datamaskinen eller serveren din? Slik setter du opp og konfigurerer SSH på Linux, Windows og mobil.

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

Når du blir bedt om et passord, la det stå tomt og trykk Enter-tasten to ganger. Dette vil generere to nye filer i din ~/.ssh/ katalog navngitt rsync.key som er den private nøkkelen, og rsync.key.pub, den offentlige nøkkelen.

Sett opp ekstern server

Selv om det ikke er nødvendig, vil vi lage en ny bruker på den eksterne serveren for rsync-tilkoblinger og for å lagre alle sikkerhetskopifiler. Logg på den eksterne serveren via SSH og kjør denne kommandoen:

sudo useradd -m rsync

Eksemplet ovenfor bruker brukernavnet rsync, men du kan endre det til hva du vil. De -m alternativet ber ganske enkelt Linux om å lage en hjemmekatalog for vår nye bruker.

For å tillate din lokale PC å autentisere, må den offentlige SSH-nøkkelen som ble generert i forrige seksjon kopieres over til den eksterne serveren. Åpne /~.ssh/rsync.key.pub fil i en tekstredigerer og du vil se en stor linje som ligner noe.

ssh-rsa bruker@vert

Denne lange linjen er den offentlige SSH-nøkkelen. Kopier den til utklippstavlen, og kjør disse kommandoene på den eksterne serveren:

sudo su rsync
mkdir -m 0700 $HOME/.ssh
ekko "ssh-rsa AAAAB... bruker@vert" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys

I den nest siste kommandoen erstatter du teksten mellom anførselstegnene med den lange offentlige SSH-nøkkellinjen. Det er det, din lokale PC vil nå kunne autentisere med den eksterne serveren.

Konfigurer ssh config-fil

For enkelhets skyld, legg til en oppføring i ~/.ssh/config fil på din lokale PC for enkelt å koble til den eksterne serveren. Åpne filen på din lokale PC med kommandoen.

nano $HOME/.ssh/config

Legg til en oppføring for den eksterne serveren i filen, for eksempel:

vert backup_server
 vertsnavn 192.168.0.24
 bruker rsync
 IdentityFile ~/.ssh/rsync

Endre vertsnavnet til IP-adressen til den eksterne serveren din, og hvis du brukte et annet brukernavn enn "rsync", endre det også. Du kan bruke alt du ønsker for verten, men for dette eksempelet ble "backup_server" brukt. Lagre og lukk filen ved å trykke Ctrl+X etterfulgt av "Y" og Enter-tastene.

Test SSH-tilkoblingen til den eksterne serveren med kommandoen.

ssh backup_server

Forutsatt at alt er riktig konfigurert, bør du nå være logget på den eksterne serveren din via SSH. Lukk forbindelsen med kommandoen.

exit

Synkroniser filene dine

Test nå rsync funksjonalitet, og for eksempel for å synkronisere dokumentkatalogen på din lokale PC, kjør kommandoen:

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

Den første forekomsten av ~/Dokumenter/ spesifiserer den lokale filen eller katalogen som skal synkroniseres, backup_server samsvarer med oppføringen lagt til ~/.ssh/config fil og slutten :~/Dokumenter spesifiserer ganske enkelt å laste opp alt til /Documents-katalogen til den eksterne serveren i forhold til hjemmekatalogen.

Logg på den eksterne serveren, og du bør se en ny dokumentkatalog som er synkronisert med den på din lokale PC. Hver gang du kjører kommandoen ovenfor, vil bare filer som har blitt endret siden forrige gang lastes opp, så du laster ikke hele tiden opp hele innholdet i katalogen.

Automatiser via Crontab

Nå som alt er testet og fungerer som det skal, kan vi enkelt automatisere hele prosessen ved å legge til en crontab-jobb på vår lokale PC. For å automatisk synkronisere din lokale mappe til den eksterne serveren hvert 15. minutt, kjør kommandoen i terminalen.

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

Du kan få en "ingen crontab for bruker"-melding, og du kan bare ignorere den. Endre Dokumenter katalogen til det du ønsker å sikkerhetskopiere, men sørg for å legge igjen et skråstrek for kataloger, ellers vil de ikke sikkerhetskopiere ordentlig.

Sjekk for å sikre at crontab-jobben ble lagt til med kommandoen.

crontab -l

Hvis du ser crontab-jobben som nettopp ble lagt til, så er alt på plass. Vent 15 minutter, sjekk den eksterne serveren din, og alle nødvendige filer skal være der. Fra og med nå vil alle endringer som gjøres i filene dine automatisk lastes opp til den eksterne serveren hvert 15. minutt.

Last ned fra ekstern server

Du kan også bruke rsync for å laste ned filer fra den eksterne serveren og synkronisere dem til din lokale PC. Ved å bruke eksemplet over /Documents-katalogen, kjør kommandoen i terminalen:

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

De ~./Dokumenter katalogen på din lokale PC skal nå være et speilbilde av den eksterne serveren.

Inkluder og ekskluder mønstre

Hvis du noen gang trenger å synkronisere bare filer som samsvarer med et bestemt mønster, for eksempel slutter med .html du kan bruke --inkludere mønster. Kjør kommandoen i terminalen.

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

Sjekk den eksterne serveren, og du vil se at bare filer med en .html-utvidelse fra den lokale /mysite/-katalogen har blitt lastet opp til /public_html/-fjernkatalogen. På samme måte kan du også synkronisere alt unntatt visse filer med --utelukke alternativ. For eksempel vil følgende kommando synkronisere alle filer unntatt de med a .tekst Utvidelse.

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

Synkroniser to lokale kataloger

Om nødvendig kan du også synkronisere to lokale kataloger med kommandoen.

rsync -zvr ~/kilde/katalog ~/destinasjon/katalog

Denne kommandoen fungerer nøyaktig på samme måte som når du synkroniserer til en ekstern server, den eneste forskjellen er at det er to lokale kataloger.

Slapp av

Du kan nå puste lettet ut og vite at sjansene dine for tap av data nå er betydelig lavere. I denne artikkelen har du lært hva rsync er, hvordan du genererer og installerer en SSH-nøkkel, definerer en server i ~./.ssh/config fil, synkroniser en lokal og ekstern katalog, og automatiser hele prosessen via crontab. Fremover vil alle nødvendige filer alltid synkroniseres med den eksterne serveren din med bare 15 minutters forsinkelse.

E-post
Slik kloner du Linux-harddisken din: 4 metoder

Trenger du å klone Linux-harddisken eller -partisjonen din? Bruk et av disse stasjonskloningsverktøyene for å klone Linux-disken din.

Relaterte temaer
  • Linux
  • Data backup
  • Linux
  • Cloud Backup
  • Hjemmenettverk
Om forfatteren
Matt Dizak (13 artikler publisert)Mer fra Matt Dizak

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Vennligst bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.