Ali vas kdaj skrbi, da bi izgubili svoje podatke, ali ste se naveličali izvajanja ročnega varnostnega kopiranja vsak dan ali tedensko? Uporabi rsync ukaz in samodejno sinhronizirajte vaše lokalne datoteke z oddaljenim strežnikom tako pogosto, kot želite, brez ročnega posredovanja. Upoštevajte, da ta priročnik zahteva dostop do oddaljenega strežnika Linux (npr. AWS) in je napisan pod Ubuntu 20.04, čeprav bi vsaka distribucija Linuxa morala delovati dobro.

Namestite rsync

Pred karkoli preverite ali ne rsync je nameščen. Na vašem lokalnem računalniku in spletnem strežniku zaženite ta ukaz:

rsync --različica

Če v zameno dobite trenutno različico rsync, ste pripravljeni za naslednji razdelek. V nasprotnem primeru, če prejmete a ukaz ni najden napaka, lahko namestite rsync s tem ukazom:

sudo apt-get -y namestite rsync

Ustvari ključ SSH

Uporabili bomo a SSH ključ za preverjanje pristnosti povezave med našim lokalnim računalnikom in oddaljenim strežnikom. Če želite ustvariti nov ključ SSH na vašem lokalnem računalniku v terminalu, zaženite ukaz:

Kako nastaviti SSH v Linuxu in preizkusiti svojo nastavitev: Vodnik za začetnike

Potrebujete oddaljeni dostop do računalnika ali strežnika Linux? Tukaj je opisano, kako nastaviti in konfigurirati SSH v Linuxu, Windows in mobilnih napravah.

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

Ko vas pozovete za geslo, pustite prazno in dvakrat pritisnite tipko Enter. To bo ustvarilo dve novi datoteki v vašem ~/.ssh/ imenik rsync.key ki je zasebni ključ in rsync.key.pub, javni ključ.

Nastavitev oddaljenega strežnika

Čeprav ni potrebno, bomo za ta vodnik ustvarili a nov uporabnik na oddaljenem strežniku za povezave rsync in shranjevanje vseh datotek varnostnih kopij. Prijavite se v oddaljeni strežnik prek SSH in zaženite ta ukaz:

sudo useradd -m rsync

Zgornji primer uporablja uporabniško ime rsync, lahko pa ga spremenite v karkoli želite. The -m možnost preprosto pove Linuxu, naj ustvari domači imenik za našega novega uporabnika.

Če želite vašemu lokalnemu računalniku omogočiti preverjanje pristnosti, je treba javni ključ SSH, ki je bil ustvarjen v prejšnjem razdelku, kopirati na oddaljeni strežnik. Odprite /~.ssh/rsync.key.pub datoteko v a urejevalnik besedil in videli boste eno veliko črto, ki izgleda nekako tako.

ssh-rsa uporabnik@gostitelj

Ta dolga vrstica je javni ključ SSH. Kopirajte ga v odložišče in znotraj oddaljenega strežnika zaženite te ukaze:

sudo su rsync
mkdir -m 0700 $HOME/.ssh
echo "ssh-rsa AAAAB... uporabnik@gostitelj" > $HOME/.ssh/authorized_keys
chmod 0644 $HOME/.ssh/authorized_keys

V zadnjem zadnjem ukazu zamenjajte besedilo med narekovaji s to dolgo javno vrstico ključa SSH. To je to, vaš lokalni računalnik se bo zdaj lahko preverjal pristnost z vašim oddaljenim strežnikom.

Konfigurirajte konfiguracijsko datoteko ssh

Zaradi poenostavitve dodajte vnos v ~/.ssh/config datoteko na vašem lokalnem računalniku za enostavno povezavo z oddaljenim strežnikom. Odprite datoteko v lokalnem računalniku z ukazom.

nano $HOME/.ssh/config

Znotraj datoteke dodajte vnos za oddaljeni strežnik, kot je:

gostitelj backup_server
 ime gostitelja 192.168.0.24
 uporabnik rsync
 IdentityFile ~/.ssh/rsync

Spremenite ime gostitelja v naslov IP vašega oddaljenega strežnika in če ste uporabili uporabniško ime, ki ni "rsync", spremenite tudi to. Za gostitelja lahko uporabite vse, kar želite, vendar je bil za ta primer uporabljen "backup_server". Shranite in zaprite datoteko tako, da pritisnete Ctrl+X, nato pa tipki "Y" in Enter.

Preizkusite svojo SSH povezavo z oddaljenim strežnikom z ukazom.

ssh backup_server

Ob predpostavki, da je vse pravilno nastavljeno, bi morali biti zdaj prijavljeni v svoj oddaljeni strežnik prek SSH. Zaprite povezavo z ukazom.

izhod

Sinhronizirajte svoje datoteke

Zdaj preizkusite rsync funkcionalnost in na primer za sinhronizacijo imenika Dokumenti v lokalnem računalniku zaženite ukaz:

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

Prvi pojav ~/Dokumenti/ določa lokalno datoteko ali imenik za sinhronizacijo, backup_server ustreza vnosu, dodanemu v ~/.ssh/config datoteko in konec :~/Dokumenti preprosto določa, da se vse naloži v imenik /Documents oddaljenega strežnika glede na domači imenik.

Prijavite se v oddaljeni strežnik in videli bi nov imenik Dokumenti, ki je sinhroniziran s tistim v vašem lokalnem računalniku. Vsakič, ko zaženete zgornji ukaz, bodo naložene samo datoteke, ki so bile spremenjene od zadnjega časa, tako da ne boste nenehno nalagali celotne vsebine imenika.

Avtomatizirajte prek Crontaba

Zdaj, ko je vse preizkušeno in deluje pravilno, lahko preprosto avtomatiziramo celoten postopek z dodajanjem opravila crontab v naš lokalni računalnik. Če želite samodejno sinhronizirati lokalno mapo z oddaljenim strežnikom vsakih 15 minut, v terminalu zaženite ukaz.

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

Morda boste prejeli sporočilo »ni crontab za uporabnika« in ga lahko preprosto prezrete. Spremenite dokumenti imenik na karkoli želite varnostno kopirati, vendar pustite poševnico za imenike, sicer ne bodo pravilno varnostno kopirali.

Preverite, ali je bilo opravilo crontab uspešno dodano z ukazom.

crontab -l

Če vidite opravilo crontab, ki je bilo pravkar dodano, je vse na svojem mestu. Počakajte 15 minut, preverite svoj oddaljeni strežnik in vse potrebne datoteke bi morale biti tam. Od zdaj naprej bodo vse spremembe vaših datotek samodejno naložene na oddaljeni strežnik vsakih 15 minut.

Prenesite z oddaljenega strežnika

Uporabite lahko tudi rsync da prenesete datoteke z oddaljenega strežnika in jih sinhronizirate z lokalnim računalnikom. Z uporabo zgornjega primera imenika /Documents znotraj terminala zaženite ukaz:

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

The ~./Dokumenti imenik na vašem lokalnem računalniku naj bo zdaj zrcalna slika oddaljenega strežnika.

Vključi in izključi vzorce

Če boste kdaj morali sinhronizirati samo datoteke, ki se ujemajo z določenim vzorcem, na primer konec z .html lahko uporabite --vključiti vzorec. V terminalu zaženite ukaz.

rsync -avz --vključi "*.html" --progress ~/mysite/ backup_server:~/public_html

Preverite oddaljeni strežnik in videli boste samo datoteke s pripono .html iz lokalnega imenika /mysite/, ki so bile naložene v oddaljeni imenik /public_html/. Podobno lahko tudi sinhronizirate vse, razen določenih datotek z --izključi možnost. Naslednji ukaz bo na primer sinhroniziral vse datoteke, razen tistih z a .txt razširitev.

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

Sinhronizirajte dva lokalna imenika

Če je kdaj potrebno, lahko z ukazom sinhronizirate tudi dva lokalna imenika.

rsync -zvr ~/vir/imenik ~/cilj/imenik

Ta ukaz deluje popolnoma enako kot pri sinhronizaciji z oddaljenim strežnikom, edina razlika je v tem, da gre za dva lokalna imenika.

Počivaj mirno

Zdaj si lahko oddahnete, saj veste, da so vaše možnosti za izgubo podatkov zdaj bistveno manjše. V tem članku ste izvedeli, kaj rsync je, kako ustvariti in namestiti ključ SSH, definirati strežnik znotraj ~./.ssh/config datoteko, sinhronizirajte lokalni in oddaljeni imenik ter avtomatizirajte celoten proces prek crontab. V prihodnje bodo vse potrebne datoteke vedno sinhronizirane z vašim oddaljenim strežnikom s samo 15-minutnim zamikom.

E-naslov
Kako klonirati trdi disk Linux: 4 metode

Ali morate klonirati trdi disk ali particijo za Linux? Uporabite eno od teh orodij za kloniranje pogona za kloniranje diska Linux.

Povezane teme
  • Linux
  • Varnostno kopiranje podatkov
  • Linux
  • Varnostno kopiranje v oblaku
  • Domače omrežje
O avtorju
Matt Dizak (Objavljenih 13 člankov)Več od Matta Dizaka

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!

Še en korak!!!

Prosimo, potrdite svoj e-poštni naslov v e-pošti, ki smo vam jo pravkar poslali.

.