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:
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.
Trenger du å klone Linux-harddisken eller -partisjonen din? Bruk et av disse stasjonskloningsverktøyene for å klone Linux-disken din.
- Linux
- Data backup
- Linux
- Cloud Backup
- Hjemmenettverk
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.