Vodiči

Hitro in varno prenašanje velikih datotek med dvema strežnikoma s pomočjo ukaza rsync prek SSH

  • 17 min branja
  • Ekipa Hostragons
Hitro in varno prenašanje velikih datotek med dvema strežnikoma s pomočjo ukaza rsync prek SSH

Ukaz rsync prek SSH je eden najbolj praktičnih načinov v Linuxu za hitro, varno in zanesljivo prenašanje velikih datotek med dvema strežnikoma. Še posebej, ko gre za datoteke spletnih strani velikosti stotin GB, varnostne kopije, medijske mape ali aplikacijske podatke, rsync prenaša le spremenjene bloke, kar pomeni, da je hitrejši od klasičnih metod kopiranja. Osnovno delovanje je preprosto: datoteke na izvorni strežnik se prek šifriranega SSH tunela sinhronizirajo z ciljnega strežnika; če pride do prekinitve povezave, se postopek nadaljuje tam, kjer je bil prekinjen.

Prenos strežnika, nadgradnja gostovanja, sprememba podatkovnega centra ali varnostne kopije so operacije, kjer sta hitrost in celovitost podatkov izjemno pomembni. Prenos velike arhive v enem kosu lahko izgubi čas in povzroči, da morate ob napakah v povezavi začeti znova. Tukaj nastopi rsync, ki ohranja časovne žige datotek, dovoljenja, lastništvo in strukturo map. Zato ga vsakodnevno pogosto uporabljajo sistemski skrbniki Linuxa, ekipe DevOps in strokovnjaki za gostovanje.

V tem priročniku bomo podrobno obravnavali postopek prenosa velikih datotek med dvema strežnikoma Linux prek SSH in rsync, s pravimi primeri ukazov. Delili bomo tudi parametre za povečanje zmogljivosti, varnostne preglede, scenarije napak, metode testne prenosa in pomembne točke, na katere je treba paziti pred prehodom v proizvodno okolje. Če načrtujete prehod na nov VPS ali gostiteljski okolje, se pred izvajanjem tega priročnika prepričajte, da imate dovolj prostora na disku, dostop do SSH in pravilne uporabniške pravice na izvorni in ciljnih strežnikih. Za ustrezne izbire infrastrukture si lahko ogledate Hostragons rešitve za VPS strežnik in Paketi Linux gostovanja.

Kaj je rsync in zakaj je priljubljen pri prenosu velikih datotek?

Rsync je močno orodje ukazne vrstice, ki omogoča sinhronizacijo datotek in map z lokalnim sistemom ali med oddaljenimi strežniki. Njegova najpomembnejša značilnost je delta prenosni algoritem. Ta algoritem prenaša le spremenjene dele datoteke, namesto da bi vsakokrat poslal celotno datoteko. Na primer, če ima varnostna kopija velikosti 80 GB le 2 GB sprememb, je mogoče prenesti le spremenjene bloke namesto celotne datoteke.

SSH pa prenos šifrira. Tako ukaz rsync ob prenosu podatkov po omrežju ne prenaša vsebine datotek v navadnem besedilu. Ta funkcionalnost je še posebej pomembna za podatke strank, e-trgovinske naročilnice, medijske arhive, varnostne kopije podatkovnih baz in posebne datoteke aplikacij. V svetu gostovanja varnost podatkov ni omejena le na SSL certifikate; tudi prenosni kanal med strežniki mora biti varen. Medtem ko za spletni promet uporabljate SSL certifikat, je priporočljivo tudi šifriranje s SSH pri prenosu datotek med strežniki.

Rsync je bolj fleksibilen od FTP ali ročnih metod prenosa. Lahko ohrani dovoljenja, prenese simbolične povezave, izbriše izbrisane datoteke na cilju, omeji pasovno širino in pred prenosom preveri, kaj bo storil. Ta stopnja nadzora je velika prednost pri tveganih operacijah, kot je prenos velikih datotek.

Kdaj bi morali uporabiti ukaz rsync prek SSH?

Ukaz rsync prek SSH je še posebej idealen za prenos velikih, številnih ali pogosto spreminjajočih se datotek. Preprosta vizualna mapa morda zadostuje z ročnim SFTP, vendar postane rsync veliko bolj zanesljiva izbira, ko gre za tisoče datotek, različna dovoljenja in velike arhive.

  • Ko prenašate spletno stran s starega strežnika na nov VPS strežnik.
  • Ko prenašate mape, ki vsebujejo tisoče medijskih datotek, kot je mapa WordPress uploads.
  • Ko kopirate dnevne, tedenske ali mesečne varnostne kopije na drug strežnik.
  • Ko izvajate spremembo podatkovnega centra ali ponudnika gostovanja.
  • Ko sinhronizirate datoteke aplikacij med proizvodnim in varnostnim okoljem.
  • Ko načrtujete dolgotrajne prenose, pri katerih obstaja možnost prekinitev povezave.

Na primer, prenos mape z medijem velikosti 250 GB na vaš računalnik in nato nalaganje na nov strežnik pomeni, da boste morali izvesti dva ločena prenosa. To podaljša skupni čas in lahko vaš domači ali pisarniški internet povzroči zastoje. Z rsync lahko postopek poenostavite in prenesete neposredno iz izvornega strežnika na ciljnega, kar odpravlja potrebo po tem vmesnem koraku.

Preden začnete, potrebujete naslednje

Uspešna operacija rsync ne zahteva le poznavanja ukaza. Preverjanje pogojev izvornega in ciljnega strežnika zmanjša tveganje za izgubo podatkov ali prekinitev prenosa. Naslednje kontrole morajo biti obvezne v proizvodnih okoljih.

1. Preverite dostop do SSH

Vzpostaviti je treba povezavo SSH med izvorom in ciljem. Standardno povezavo testirate takole: ssh uporabnik@ciljni-strežnik-ip. Če SSH deluje na drugem portu, poskusite povezavo takole: ssh -p 2222 uporabnik@ciljni-strežnik-ip. Če ta test ne uspe, rsync ne bo deloval. Preveriti je treba požarni zid, Fail2ban, port SSH, uporabniška dovoljenja ter preverjanje gesla ali ključa.

2. Preverite, ali je paket rsync nameščen

Večina distribucij Linuxa že ima rsync prednaložen; kljub temu je treba to preveriti. Na sistemih, ki temeljijo na Debianu in Ubuntuju, lahko uporabite ukaz rsync --version. Če ni nameščen, ga lahko namestite z apt install rsync. Na derivatih AlmaLinux, Rocky Linux ali CentOS uporabite dnf install rsync ali yum install rsync. Če uporabljate Linux temeljen VPS na Hostragons, je namestitev običajno zelo hitra.

3. Preverite prostor na disku

Če na ciljnem strežniku ni dovolj prostega prostora, se prenos prekine. Za ogled velikosti izvorne mape lahko uporabite ukaz du -sh /izvorna/mapa. Na cilju je treba preveriti stanje diska z df -h. V praksi je treba zagotoviti prostor ne le za velikost datotek, temveč tudi za začasne datoteke in dnevnike. Na primer, če prenašate 500 GB podatkov, je priporočljivo načrtovati vsaj 550-600 GB prostega prostora na cilju.

4. Načrtujte kritične storitve in spremenjene datoteke

Med prenosom lahko datoteke na aktivnih spletnih straneh spremenijo. Še posebej uporabniški prenosi, predpomnilniške mape in dnevniške datoteke se stalno posodabljajo. Pri velikih prenosih najprej prenesite glavne podatke, nato pa preklopite v način vzdrževanja in izvedite še en rsync. Tako lahko čas prekinitve zmanjšate na nekaj minut. Za WordPress strani lahko uporabite podporne vsebine, kot je Vodnik za prenos WordPress gostovanja, da dokončate svoj načrt naloge.

Osnovni ukaz rsync: prenos datotek med dvema strežnikoma

Najpogosteje uporabljena osnovna struktura je: rsync -avz /izvorna/mapa/ uporabnik@ciljni-ip:/ciljna/mapa/. Tukaj -a pomeni način arhiviranja in poskuša ohraniti informacije, kot so dovoljenja, časovni žigi in simbolične povezave. -v daje podrobne izhode. -z pa omogoča stiskanje med prenosom. Pomembno je tudi, da je na koncu mape poševna črta. Ko pišete /izvorna/mapa/, se vsebina mape kopira na cilj; če pišete /izvorna/mapa, se ustvari sama mapa na cilju.

Pomislite na naslednji scenarij: želite prenesti 180 GB spletnih datotek iz mape /var/www/site/public_html/ na nov strežnik v mapo /var/www/site/public_html/. Ukaz deluje takole: rsync -avz /var/www/site/public_html/ root@203.0.113.20:/var/www/site/public_html/. Ta postopek prenaša datoteke prek SSH iz izvornega strežnika na ciljni.

Če ne želite uporabljati uporabnika root, je bolj varno ustvariti posebnega uporabnika na ciljnem strežniku, ki ima dovoljenje za pisanje v ustrezno mapo. Na primer, lahko uporabite uporabnika z imenom deploy in ustrezno prilagodite lastništvo map. V proizvodnih okoljih je praktično delo neposredno z rootom, vendar je priporočljivo uporabljati uporabnike z omejenimi pravicami zaradi varnosti.

Priporočeni varni in zanesljivi parametri rsync

Pri prenosu velikih datotek ni vedno pravilno omejiti se le na osnovni ukaz. Morda je treba uporabiti dodatne parametre za prekinitev povezave, delne datoteke, napačne brisanja ali počasna omrežja. Spodnji ukaz je trdna izhodiščna točka za številne resnične scenarije prenosa:

rsync -aHAXv --numeric-ids --partial --progress --append-verify -e ssh /izvorna/mapa/ uporabnik@ciljni-ip:/ciljna/mapa/

V tem ukazu -a ohranja način arhiviranja, -H ohranja informacije o trdih povezavah, -A ohranja ACL dovoljenja, -X pa podaljšane atribute. --numeric-ids se sklicuje na ID vrednosti namesto na imena uporabnikov in skupin; to je lahko koristno, ko se imena uporabnikov razlikujejo med strežniki. --partial pusti delno končane datoteke brez brisanja. --progress prikazuje stanje prenosa. --append-verify pa še posebej pri velikih datotekah pomaga pri preverjanju dodanega dela, ko nadaljujemo tam, kjer smo končali.

Vsak parameter morda ni potreben v vsakem sistemu. Na primer, pri preprostem prenosu spletne strani je lahko dovolj, da uporabite -aHAX, medtem ko je ohranjanje ACL in podaljšanih atributov kritično v aplikacijah, kjer se uporabljajo posebna dovoljenja. Zato je pomembno najprej izvesti testni prenos.

Kako naj bi izgledal ukaz, če uporabljate drug SSH port?

Za varnost je lahko SSH port nastavljen na drug port namesto 22. V tem primeru je treba v rsync navesti parameter SSH. Na primer: rsync -avz -e ssh -p 2222 /izvorna/mapa/ uporabnik@ciljni-ip:/ciljna/mapa/. Vendar pa je vrednost parametra -e treba uporabiti skupaj. Pravilno delovanje je takšno: rsync -avz -e 'ssh -p 2222' /izvorna/mapa/ uporabnik@ciljni-ip:/ciljna/mapa/.

Ker lahko uporaba enojnih narekovajev v JSON in nekaterih vmesnikih deluje drugače, se prepričajte, da so narekovaji pravilni, ko jih neposredno vnašate v terminal. Če se povezujete z SSH ključem, lahko dodate tudi parameter -i: rsync -avz -e 'ssh -p 2222 -i /root/.ssh/id_rsa' /izvorna/mapa/ uporabnik@ciljni-ip:/ciljna/mapa/. Ta metoda se pogosto uporablja pri avtomatizaciji in nalogah varnostnega kopiranja na podlagi cron-a.

Testiranje pred prenosom: uporaba --dry-run

Eden najbolj profesionalnih korakov pred prenosom velikih podatkov je uporaba --dry-run. Ta parameter dejansko ne prenese datotek; le pokaže, katere datoteke bodo prenesene. Tako lahko vnaprej zaznate napačno mapo, napačno ciljno pot ali nepričakovane operacije brisanja.

Primer testnega ukaza: rsync -avz --dry-run /var/www/site/ uporabnik@ciljni-ip:/var/www/site/. V izhodu boste videli prenašane datoteke, ustvarjene mape in povzetek operacije. Če boste uporabili parameter --delete, bo dry-run še bolj kritičen. Ker --delete lahko izbriše datoteke, ki jih na izvoru ni, na cilju. Ko ga pravilno uporabimo, ciljno mesto spremeni v točno kopijo; ob napačni uporabi v napačni mapi pa lahko povzroči resno izgubo podatkov.

Profesionalna zaporedja običajno izgledajo takole: najprej se izvede test SSH, nato se preveri prostor na disku, nato se izvede rsync --dry-run, izvede se pravi test z majhno mapo, nato pa se začne glavni prenos. Ta pristop zahteva nekaj dodatnih minut, vendar preprečuje napake, ki bi lahko trajale ure.

Nastavitve za stiskanje, pasovno širino in šifriranje za zmogljivost

Zmogljivost rsync ni odvisna le od velikosti datotek. Pomembna sta tudi moč CPU strežnikov, vrsta diska, zakasnitve v omrežju, pasovna širina in število datotek. Zelo veliko majhnih datotek je lahko počasnejših za prenos kot ena velika datoteka, saj se za vsako datoteko izvajajo operacije z metapodatki. VPS okolja z NVMe diski lahko prikažejo opazno boljšo zmogljivost pri skeniranju in pisanju datotek. Zato, če načrtujete obsežne prenose, je smiselno razmisliti o NVMe VPS strežnik možnostih.

Parameter -z za stiskanje koristi pri besedilnih datotekah, dnevnikih in nekaterih vrstah varnostnih kopij. Vendar pa pri že stisnjenih datotekah zip, tar.gz, jpg, mp4 ali gzip lahko porabi CPU brez večjih koristi. Če prenašate velike medijske datoteke med dvema zmogljivima strežnikoma z 1 Gbps povezavo, boste morda dosegli boljšo zmogljivost brez -z. Po drugi strani pa lahko -z znatno prihrani pri prenosih z nizko pasovno širino in besedilnimi datotekami.

Za omejitev pasovne širine lahko uporabite --bwlimit. Na primer, --bwlimit=50000 omeji hitrost na približno 50 MB/s. To je pomembno, da ne zadušite omrežnega prometa aktivne spletne strani. Pri polni hitrosti prenosa v obdobjih velikega obiska na produkcijskem strežniku lahko negativno vpliva na uporabniško izkušnjo. Načrtovanje prenosov v nočnem času, postavljanje omejitev pasovne širine in spremljanje povprečnih obremenitev med postopkom je dobra praksa.

Primerjava rsync, scp, SFTP in FTP

Primerjava rsync, scp, SFTP in FTP

Obstaja več metod za prenos datotek, vendar imajo vsaka svoje prednosti in slabosti. Spodnja tabela povzema, kateri orodje je najbolj primerno za velike prenosne scenarije in prenos strežnikov.

Primerjava rsync, scp, SFTP in FTP
MetodaVarnostNadaljevanje od zadnjega mestaZmogljivost velikih datotekNajboljša raba
rsync + SSHVisokaMočnaOdličnaPrenos strežnikov, varnostne kopije, sinhronizacija
scpVisokaOmejenaZmernaHitro kopiranje majhnega števila datotek
SFTPVisokaOdvisno od odjemalcaZmernaRočno upravljanje datotek
FTPNizkaOdvisno od odjemalcaSpremenljivaStari sistemi, kjer varnost ni kritična

Kot je razvidno iz tabele, se rsync še posebej izkaže pri ponavljajočih se sinhronizacijah in prenosu velikih podatkov. Scp je preprosto in uporabno, vendar ni tako močan pri pametnem zaznavanju spremenjenih datotek kot rsync. FTP ni primeren za uporabo brez šifriranja po sodobnih varnostnih standardih. FTP dostop v gostiteljskih panelih je lahko praktičen, vendar je treba pri kritičnih prenosih med strežniki raje uporabiti metode, ki temeljijo na SSH.

Primer delovnega toka za prenos aktivne spletne strani

Prenos spletne strani s starega strežnika na novega ni namenjen le kopiranju datotek. Treba je preveriti tudi DNS, podatkovno bazo, različico PHP, dovoljenja datotek in konfiguracijo e-pošte. Spodaj je prikazan primer delovnega toka za prenos spletne strani z velikimi datotekami, ki zagotavlja nizke prekinitve.

  • Na novem strežniku pripravite spletni strežnik, PHP, podatkovno bazo in potrebne module.
  • Zmanjšajte TTL vrednost DNS domene na 300 sekund pred prenosom. Za upravljanje domen se lahko sklicujete na vprašanje domene in upravljanje z domeno.
  • Začnite prvi prenos rsync, medtem ko je stran aktivna. Ta faza prenaša večino velikega podatka.
  • Ustvarite varnostno kopijo podatkovne baze in jo prenesite na nov strežnik.
  • Stran za kratek čas postavite v način vzdrževanja.
  • Izvedite drugi ukaz rsync, da sinhronizirate zadnje spremenjene datoteke.
  • Posodobite podatkovno bazo ali uporabite strategijo inkrementalnega varnostnega kopiranja.
  • Preverite dovoljenja datotek, zagon strani in dnevnike na novem strežniku.
  • Namestite ali obnovite SSL certifikat. Za to lahko uporabite vsebino namestitev SSL certifikata.
  • Preusmerite DNS zapise na nov IP naslov.

V tej metodi se najdaljši prenos datotek izvede, medtem ko je stran aktivna. Prekinitve nastanejo le pri zadnji sinhronizaciji in prehodu DNS. Ta pristop lahko zmanjša dolge prekinitve pri WordPress spletnih straneh z velikimi medijskimi arhivi na nekaj minut.

Preverjanje celovitosti podatkov

Ko je prenos končan, samo končanje ukaza ni dovolj. Treba je preveriti število datotek, velikosti in kritične datoteke. Preprosto preverjanje se lahko izvede s primerjavo velikosti map na izvoru in cilju z ukazom du -sh. Vendar pa se zaradi blokov datotečnega sistema vrednosti morda ne bodo ujemale. Za podrobnejše preverjanje lahko rsync ponovno zaženete z istimi parametri. Če ni novih datotek za prenos, bo izhod minimalen.

Za preverjanje kontrolne vsote lahko uporabite rsync -avc --dry-run /izvorna/mapa/ uporabnik@ciljni-ip:/ciljna/mapa/. Tukaj parameter -c primerja datoteke poleg časovnih žigov in velikosti še s kontrolno vsoto. Pri zelo velikih podatkih lahko povzroči obremenitev CPU in diska, zato ga je treba uporabljati previdno. Ta dodatna preverjanja zagotavljajo zanesljivost pri kritičnih arhivih, dump datotekah podatkovnih baz ali dokumentih strank.

Če ste prenesli spletno stran, izvedite tudi preverjanje na ravni aplikacije. Treba je preveriti domačo stran, nadzorno ploščo, nalaganje slik, plačilno stran, kontaktni obrazec in dnevnike napak. Pri e-trgovinskih straneh prenos datotek ni dovolj; treba je preizkusiti tudi integracije plačil in naloge cron na novem strežniku.

Pogoste napake in rešitve

Napaka Permission denied

Ta napaka običajno nastane zaradi pravic uporabnika SSH, pravic za pisanje v ciljni imenik ali preverjanja ključa. Najprej poskusite vzpostaviti normalno povezavo SSH z istim uporabnikom. Če je povezava uspešna, preizkusite ustvarjanje datoteke v ciljni mapi. Če je potrebno, dodelite lastništvo ciljne mape uporabniku s pomočjo ukaza chown ali načrtujte strategijo na osnovi sudo.

Napaka No space left on device

Kadar na ciljnem disku ni več prostora, se prenos ustavi. Preverite particije diska z df -h. Včasih glavni disk ni poln, vendar je poln /tmp ali ciljni točki montaže. Pri velikih prenosih je mogoče očistiti dnevniške datoteke, stare varnostne kopije in predpomnilniške mape. Za trajno rešitev je morda potrebno povečati disk ali preiti na VPS načrt z večjo kapaciteto.

Napaka Connection reset ali Broken pipe

Pri dolgotrajnih prenosih lahko pride do omrežnih prekinitev. Če uporabljate --partial in --append-verify, lahko ukaz znova zaženete in nadaljujete tam, kjer ste končali. Prav tako lahko pomagajo nastavitve za ohranjanje povezave SSH. Na strani odjemalca lahko nastavite ServerAliveInterval 60, kar zmanjša tveganje za prekinitev.

Zelo počasen prenos

Pohodnost je lahko posledica števila datotek, omejitve I/O diska, obremenitve stiskanja ali zmogljivosti omrežja. Če je veliko majhnih datotek, je včasih hitreje ustvariti tar arhiv; vendar se v tem primeru zmanjša prednost rsync pri spremembah na ravni datoteke. Preizkusite tudi brez parametra -z pri velikih in že stisnjenih datotekah. Poleg tega z orodji, kot so iotop, htop in iftop, ugotovite, ali je ozko grlo na strani CPU, diska ali omrežja.

Najboljše prakse za varnost

Med prenosom datotek med strežniki varnosti ne smemo zanemariti. Še posebej je treba obravnavati dostop do root, SSH ključe in varnostne kopije kot občutljive. Priporočljivo je uporabljati SSH ključe namesto gesel. Dovoljenja datotek ključev morajo biti strogo nadzorovana, zasebni ključi ne smejo biti deljeni, in kjer je mogoče, naj bodo zaščiteni z geslom.

Ustvarjanje začasnega uporabnika za prenos in dodelitev dostopa le do potrebnih map je dobra metoda. Po zaključku postopka lahko te pravice uporabnika prekličete ali onemogočite račun. Omejitev dostopa SSH na določene IP naslove prav tako zmanjšuje površino napada. Pravila požarnega zidu, Fail2ban in posodobljena različica OpenSSH so med osnovnimi preverjanji.

Če prenašate dump datoteke podatkovnih baz, dokumente strank ali arhive, ki vsebujejo osebne podatke, je treba po prenosu očistiti nepotrebne začasne datoteke na izvoru in cilju. Prav tako predstavlja resno varnostno tveganje, če v korenskem imeniku spletne strani ostanejo varnostne kopije, kot so .sql, .zip ali .tar. Te datoteke je treba hraniti v mapi, ki ni dostopna prek spleta, ali pa jih po končanju postopka izbrisati.

Uporaba rsync za samodejne varnostne kopije

Rsync se lahko uporablja ne le za enkratne prenose, ampak tudi za redne varnostne kopije. Na primer, lahko določite nalogo cron, ki vsak večer pošlje določeno mapo na strežnik za varnostne kopije. V tem scenariju se vzpostavi varna povezava brez gesla z SSH ključi, rsync prenese le spremenjene datoteke in lahko se uporabi omejitev pasovne širine.

Primer logike: rsync -a --delete --bwlimit=30000 /var/www/site/ backup@varnostni-ip:/backup/site/. Ta ukaz lahko uskladi ciljno mapo z izvorom. Vendar pa je treba biti previden pri uporabi parametra --delete. Če pomotoma izbrišete datoteko na izvoru, se ta izbriše tudi na cilju. Zato je priporočljivo uporabljati strategije varnostnega kopiranja, ki podpirajo snapshot, dnevne mape ali rešitve s različicami.

V operacijah gostovanja je pravilo varnostne kopije 3-2-1 dober referenčni okvir: vsaj 3 kopije podatkov, 2 v različnih okoljih in 1 kopija na drugi lokaciji. Rsync to strategijo poenostavi pri prenosu kopij med strežniki. Za bolj obsežno infrastrukturo lahko svoje načrte okrepite z vsebinami Rešitve za varnostno kopiranje in storitev korporativnega gostovanja.

Končna kontrolna lista

Pred začetkom prenosa velikih datotek je smiselno izvesti spodnji kratek seznam, da zmanjšate tveganje za napake. Ta seznam bi moral postati standardna procedura, še posebej v proizvodnih okoljih.

  • Ali je rsync nameščen na izvoru in cilju?
  • Ali je bila povezava SSH testirana s pravim uporabnikom in portom?
  • Ali je na ciljnem strežniku dovolj prostora na disku?
  • Ali je bil prvi postopek preverjen z --dry-run?
  • Ali je bil načrtovan način vzdrževanja za aktivno stran in zadnja sinhronizacija?
  • Ali je bil cilj pravilno potrjen, če bo uporabljen --delete?
  • Ali se bo preverilo število datotek, dovoljenja in testi aplikacij po prenosu?
  • Ali se bodo začasne varnostne kopije in dump datoteke varno očistile?

Čeprav se te kontrole zdijo preproste, so v resničnem svetu najpogostejše težave običajno posledica napačne ciljne mape, manjkajočih dovoljenj, nezadostnega prostora na disku in nenačrtovane prehode DNS. Načrtovan postopek rsync skrajša čas prenosa in povečuje možnosti za uspeh.

Pogosta vprašanja

Ali se prenos ponovno začne, če se prekine povezava prek rsync?

Ne, če uporabite pravilne parametre, ne bo treba začeti znova. Možnosti --partial in --append-verify pomagajo ohraniti velike datoteke, ki so bile delno prenesene, in omogočijo, da se prenos nadaljuje tam, kjer je ostal, ko se ukaz ponovno izvede. Vendar pa je priporočljivo, da pred ponovnim izvajanjem ukaza preverite prostor na disku in stanje delnih datotek.

Ali se z rsync lahko neposredno prenese podatkovna baza?

Rsync prenaša datoteke; neposredno kopiranje delujočih datotek podatkovne baze ni zdravo. Za MySQL ali MariaDB je treba uporabiti mysqldump ali fizična orodja za varnostno kopiranje, nato pa prenesti nastalo varnostno kopijo na ciljni strežnik z rsync. V aktivnih sistemih je treba načrtovati način vzdrževanja ali strategijo replikacije za zagotavljanje skladnosti podatkov.

Ali potrebujem dostop do root na obeh strežnikih za uporabo rsync?

Dostop do root ni obvezen. Uporabnik z dovoljenjem za pisanje v ciljni imenik je dovolj. Vendar pa lahko, če je potrebno ohraniti lastništvo datotek, sistemske mape, ACL ali posebna dovoljenja, potrebujemo višje pravice. Z varnostnega vidika je bolje delati z uporabnikom, ki ima čim manj pravic.

Ali je parameter --delete varen?

Ko se --delete pravilno uporablja, je zelo koristno za usklajevanje ciljne mape z izvorno; če pa se uporablja v napačni ciljni mapi, lahko povzroči izgubo datotek. Zato je treba ukaze, ki vsebujejo --delete, vedno najprej preizkusiti z --dry-run, ciljne in izvorne poti pa skrbno potrditi.

Ali je pri prenosu velikih datotek boljša izbira rsync ali scp?

Pri enkratnih manjših kopiranjih je scp lahko dovolj; vendar je rsync na splošno boljši pri velikih datotekah, številnih datotekah in ponavljajočih se sinhronizacijah. Zaznava spremenjene podatke, lahko nadaljuje prekinjene prenose, omeji pasovno širino in ponuja testni način.

Povzetek in naslednji koraki

Prenos velikih datotek med dvema strežnikoma s pomočjo ukaza rsync prek SSH je hiter, varen in obvladljiv način. S pravimi parametri postane odporen na prekinitve povezave, prenaša le spremenjene datoteke, kar prihrani čas, in zmanjšuje prekinitve med prenosom aktivnih spletnih strani. Za najboljše rezultate najprej izvedite teste SSH in prostora na disku, preizkusite z --dry-run, nato pa načrtujte glavni prenos.

Če načrtujete prehod na nov strežnik, visoko kapaciteto za shranjevanje ali bolj zmogljivo infrastrukturo gostovanja, si lahko ogledate rešitve Hostragons, da naredite prenos varnejši z VPS, gostovanjem, domenami in SSL možnostmi, ki ustrezajo vašim potrebam. Za brezskrbno selitev začnite z manjšimi testi, merite in načrtujte zadnjo sinhronizacijo.

Delite to objavo:

Ekipa Hostragons

Aktualni vodniki naše strokovne ekipe o gostovanju, strežnikih in domenskih imenih. Skupaj poiščimo pravo rešitev za vaš projekt.

Kontaktirajte nas