17Aug

Andmete sünkroonimise juhis, mis ei ole algajatele Rsynciga

click fraud protection

rsync-protokolli saab tavaliste varukoopiate / sünkroniseerimise tööde jaoks üsna lihtne kasutada, kuid mõned selle lisafunktsioonid võivad teid üllatada. Selles artiklis me näitame, kuidas isegi suurimad andmekoguhoidjad ja varukoopiahuvilised saavad rsynci kasutada kõigi nende andmete koondamise vajaduste ühtse lahendusena.

Hoiatus: täiustatud geeksid ainult

Kui olete istuval kohal ja mõelnud, et "ricketti on rsync?" Või "rsync kasutan ainult tõeliselt lihtsate ülesannete jaoks", võite vaadata eelmist artiklit selle kohta, kuidas rsyncit varundamiseks kasutadateie andmed Linuxis, mis annab ülevaate rsynci juurutamisest, juhendab teid installimise kaudu ja tutvustab oma põhifunktsioone. Kui olete rsynci( ausalt öeldes ei ole see keeruline) kindel hank, ja olete Linuxi terminaliga rahul, olete valmis selle täpsema juhendiga edasi liikuma.

Käivita rsync Windowsis

Esmalt, laseme meie Windowsi lugejad samal lehel nagu meie Linuxi gurud. Kuigi rsync on loodud Unix-tüüpi süsteemide käitamiseks, pole põhjust, et te ei saaks seda Windowsis sama lihtsasti kasutada. Cygwin toodab suurepärast Linuxi API-d, mida saame kasutada rsynci käivitamiseks, nii et pea üle oma veebisaidi ja 32-bitise või 64-bitise versiooni, sõltuvalt teie arvutist, allalaadimiseks.

instagram viewer

Paigaldamine on lihtne;saate hoida kõiki valikuid nende vaikeväärtustega, kuni jõuate ekraanile "Valige paketid".

Nüüd peate tegema samu samme Vim ja SSH-i jaoks, kuid pakette hakatakse nende valikut silmas pidades veidi otsima, nii et siin on mõned ekraanikuvasid:

Vim installimine:

SSH installimine:

Kui oledvalisite need kolm paketti, jätkake järgmise installimisega kuni installi lõpuni. Siis saate avada Cygwini, klõpsates ikoonil, mille installer oma töölauale asetas.

rsync käsud: lihtne ja täiustatud

Nüüd, kui Windowsi kasutajad asuvad samal lehel, vaatame lihtsalt rsynci käsku ja näeme, kuidas mõne täiendava lüliti kasutamine võib seda keerukaks muuta.

Oletame, et teil on hulgaliselt faile, mis vajavad varundamist - kes ei ole nendel päevadel?Ühendate kaasaskantava kõvaketta, et saaksite oma arvutite failid varukoopiate tegemiseks ning väljastaksite järgmise käsu:

rsync -a /home/geek/files/ /mnt/usb/files/

Või kuidas see näeb välja Windowsi arvutiga Cygwiniga:

rsync-a /cygdrive/c/files/ /cygdrive/e/files/

Päris lihtne jaselles punktis pole tõesti vajadust rsynci kasutada, sest võite lihtsalt failid lohistada. Kuid kui teie teisel kõvakettal on juba mõned failid ja vajab lihtsalt uuendatud versioone ja faile, mis on loodud pärast viimast sünkroonimist, on see käsu käepärane, sest see saadab uued andmed ainult kõvakettale. Suurte failidega ja eriti failide ülekandega Internetis on see suur asi.

Failide varundamine välisesse kõvakettale ja seejärel kõvaketta pidamine arvutiga samasse kohta on väga halb mõte, nii et vaatame, mida see vajab, et alustada failide saatmist Interneti kaudu teise arvutisse(üks olete rendinud, pereliige jne).

rsync -av --delete -e 'ssh -p 12345' /home/geek/files/ [email protected]: /home/geek2/files/

Ülalolev käsk saadab teie failid teisele arvutile, millel on 10.1.1.1 IP-aadress. See kustutaks kõrvalisi faile sihtkohast, mida enam lähtekataloogis enam ei eksisteeri, edastatakse failide nimed, nii et teil on idee, mis toimub, ja tunnel rsync läbi SSH-i pordis 12345.

-a -v -e --lülitid on mõned kõige elementaarsemad ja sagedamini kasutatavad;kui lugeda seda õpetust, peaksite neid juba palju teadma. Läheme üle mõne teise lüliti, mida mõnikord eiratakse, kuid see on uskumatult kasulik:

- progress - see lüliti võimaldab meil näha iga faili edastamise edenemist. See on eriti kasulik suurete failide ülekandmisel internetis, kuid võib edastada vähese hulga infot kiirete võrkude kaudu väikeste failide ülekandmisel.

Käimas on rsync-käsk koos varukoopia -progress-lülitiga:

- erapooletu - see on teine ​​lüliti, mis on eriti kasulik suurte failide ülekandmisel Internetis. Kui rsync katkestatakse mingil põhjusel failiedastuse keskel, säilitatakse osaliselt ülekantud fail sihtkataloogis ja üleandmine jätkub, kui see jäi välja, kui rsynci käsk uuesti käivitatakse. Suurte failide ülekandmisel internetis( näiteks paar gigabaiti) ei ole midagi halvemat kui mõni teine ​​Interneti-katkestuse puudumine, sinine ekraan või inimviga tõrjeneb teie failide ülekandmisel ja tuleb uuesti alustada.

-P - see lüliti ühendab - progressi ja --partial, nii et kasutage selle asemel ja see muudab teie rsync käskluse veidi vähemaks.

-z või - compress - see lüliti teeb rsync compress faili andmeid, kui see on üle kantud, vähendades sihtkohale saadetud andmete hulka. See on tõesti üsna tavaline lüliti, kuid see pole kaugeltki oluline, vaid aeglane ühendamine vahetuks ülekanneteks on tõeline kasu ja see ei tee midagi järgmist tüüpi failide jaoks: 7z, avi, bz2, deb, g, z iso, jpeg, jpg,mov, mp3, mp4, ogg, rpm, tbz, tgz, z, zip.

-h või - inimloetav - kui kasutate --progressi lülitit, siis kindlasti soovite seda ka kasutada. See tähendab, et kui soovite, et baiti megabaitides käsitsi teisendataks.-h lülitab kõik väljundandmed numbritele inimesele loetavas vormingus, nii et saate tegelikult ülekantavate andmete hulga mõttes aru saada.

-n või --dry run - see lüliti on oluline teada, kui sa esmakordselt oma rsync skripti kirjutavad ja katsetad seda. See viib läbi katsetamise, kuid tegelikult ei tee midagi muudatusi - endised muudatused on endiselt väljastatud nii nagu tavaliselt, nii et saate lugeda üle kõik ja veenduda, et see tundub hästi enne skripti tootmist.

-R või - relative - seda lülitit tuleb kasutada, kui sihtkataloogi pole veel olemas. Me kasutame seda võimalust hiljem käesolevas juhendis, nii et me saaksime sihtsadamas katalooge katalooginimede ajatemplitega.

--exclude-from - Seda lülitit kasutatakse välise nimekirja linkimiseks, mis sisaldab kataloogiteid, mida te ei soovi varundatud. Selleks on vaja lihtsalt tekst-faili, milles on iga rea ​​kataloog või faili tee.

--include-from - Sarnane --exclude-from, kuid see lingib faili, mis sisaldab varundatud andmete katalooge ja failide teekondi.

- staatus - pole mingil juhul olulist lülitit, kuid kui oled sysadmin, siis on kasulik teada iga varukoopia üksikasjalikku statistikat, et saaksite jälgida võrgu kaudu edastatava liikluse ulatust ja selliseid.

--log-file - see võimaldab teil rsynci väljundit saata logifaili. Soovitame kindlasti seda automaatseks varundamiseks, kus te ei ole, et saaksite väljundit ise läbi lugeda. Alati anna logifaile oma vaba aja veetmiseks, et kõik toimiks korralikult. Samuti on see sysadmini jaoks otsustavaks lülitiks, nii et te ei jäta järele mõtlematult, kuidas teie varukoopiaid ebaõnnestusid, kui te jätsite interni eest.

Vaatame nüüd meie käsuga rsync käsku, et meil on veel mõned lülitid:

rsync -avzhP --delete --stats --log-file = /home/geek/rsynclogs/ backup.log --exclude-from '/home/geek/ exclude.txt'-e 'ssh -p 12345' /home/geek/files/ geek2 @ 10.1.1.1: /home/geek2/files/

Käsk on endiselt üsna lihtne, kuid me pole ikka veel loonud korraliku varundamise lahenduse. Kuigi meie failid on nüüd kahes erinevas füüsilises asukohas, ei tee see varundamine midagi, mis kaitseks meid andmete kaotamise peamistest põhjustest: inimlik viga.

Snapshot varukoopiad

Kui te kogemata faili kustutate, rikub viirus teie faile või midagi muud, kui teie failid on soovimatult muudetud, ja seejärel käivitage oma rsync varukoopia skript, salvestatakse teie varundatud andmed ebasoovitavate muudatustega üle. Kui selline asi leiab aset( mitte siis, kui, kuid), ei suutnud teie varukoopia lahendus teie andmekaotust kaitsta.

rsync looja seda mõistsid ja lisasid --backup ja --backup-dir argumendid, nii et kasutajad saaksid kasutada eri varukoopiaid. Rsynci veebisaidi kõige esimene näide näitab skripti, kus iga seitsme päeva jooksul käivitatakse täielik varundamine, ja seejärel muudetakse nende failide muudatused iga päev eraldi kataloogides. Probleem selle meetodiga on see, et failide taastamiseks tuleb neid seitsme erineva aja jooksul taastada. Peale selle käitab enamik geekseid oma varukoopiaid mitu korda päevas, nii et teil oleks igal ajahetkel hõlpsasti 20 + varukataloogi. Mitte ainult ei taasta oma failid nüüd valu, kuid isegi varundatud andmete otsimine võib osutuda väga aeganõudvaks - peate teadma viimast faili muutmisest, et leida selle uusim varundatud koopia. Peale selle on ebaefektiivne töötada ainult kord nädalas( või mõnel juhul sagedamini) täiendavate varukoopiatega.

Snapshot varukoopiad päästmiseks! Snapshot varukoopiad on midagi enamat kui täiendavad varukoopiad, kuid nad kasutavad kõva viiteid, et säilitada algse allika failistruktuur. See võib olla raske kõigepealt oma pea ümber asetada, nii et vaatame näitena.

Näidake, et meil on varukoopia skript, mis automaatselt varundab meie andmeid iga kahe tunni tagant. Iga kord, kui rsync seda teeb, nimetab see iga varukoopia järgmisel kujul: Backup-month-day-year-time.

Nii et lõpuks tüüpiline päev, meil oleks kataloogide nimekiri meie sihtkataloogis, nagu see:

Kui mõni neist kataloogidest liigub, näete kõiki faili lähtekataloogist täpselt nii nagu sel ajal. Kuid kahes kataloogis pole ühtegi duplikaati.rsync seda teostab, kasutades hardlinking -link-dest = DIR-i argumenti.

Muidugi, selleks, et neid kenasti ja kenasti kataloogitud nimesid oleksid, on meil vaja natuke uuendada meie rsync-skripti. Vaatame, mida ta vajab sellise varundlahenduse saavutamiseks, ja siis selgitame skripti täpsemalt:

#!/bin/ bash

#copy old time.txt time2.txt

jah |cp ~ /backup/ aeg.txt ~ /backup/ aeg2.txt

# kirjutada vana aja.txt fail uue ajaga

echo "kuupäev +"% F-% I% p "` & gt;~ /backup/ aeg.txt

# muuda logifaili

echo "" & gt;~ /backup/ rsync-`date +"% F-% I% p "`. log

#rsync käsk

rsync -avzhPR -chmod = Du = rwx, Dgo = rx, Fu = rw, Fgo = r --delete --stats --log-file = ~ /backup/ rsync-'date + "% F-% I% p" `.log -exclude-from" ~ / exclude.txt "-link-dest = /home/geek2/files/` kass ~ /backup/time2.txt` -e 'ssh -p 12345' /home/geek/files/ geek2 @ 10.1.1.1: /home/geek2/files/ 'date + "% F-% I% p" "/

# ärge unustage logifaili kopeerida ja panna seevarukoopia

scp -P 12345 ~ /backup/ rsync-`cat ~ /backup/ aeg.txt`.log geek2 @ 10.1.1.1: /home/geek2/files/` kass ~ /backup/ aeg.txt` / rsync-`cat ~ /backup/ aeg.txt`.log

Seeoleks tüüpiline snapshot rsync skript. Juhul kui me kaotame sind kusagil, laseme selle tükk lahti lõigata:

Meie skripti esimene rida kopeerib time.txti sisu ajaks2.txt. Jahitoru on kinnitada, et me tahame faili üle kirjutada. Järgnevalt võtame arvesse praegust kellaaega ja pane see aegseks.txt. Need failid on hiljem kasulikud.

Järgmine rida teeb rsync logifaili, nimetades seda rsync-date.log( kus kuupäev on tegelik kuupäev ja kellaaeg).

Nüüd, kompleksne rsync käsk, millest me hoiatasime teile:

-avzhPR, -e, -delete, -stats, -log-fail, --exclude-from, -link-dest - lihtsaltlülitusi, millest me rääkisime varem;kerige üles, kui vajate täiendamist.

--chmod = Du = rwx, Dgo = rx, Fu = rw, Fgo = r - need on sihtkoha kataloogi õigused. Kuna me teeme selle kataloogi meie rsync-skripti keskel, peame määrama õigused, et meie kasutaja saaks neile faile kirjutada.

Kuupäeva ja kassi käskude

kasutamine Me läheme käsku rsync käsku sisaldava kuupäeva ja kassi käskude iga kasutamise ajal nende järjestuses. Märkus. Me teame, et selle funktsiooni saavutamiseks on muid võimalusi, eriti muutujate deklareerimise kasutamisel, kuid selle juhendi eesmärgil oleme otsustanud seda meetodit kasutada.

Logifail on määratud järgmiselt:

~ /backup/ rsync-`date +"% F-% I% p "`. log

Alternatiivina võisime selle määrata:

~ /backup/ rsync-'cat ~ /backup/ time.txt`.log

Mõlemal juhul peaks -log-faili käsk olema suuteline varem loodud ajakohastatud logifaili leidma ja sellele kirjutama.

Link-sihtfail on määratud järgmiselt:

--link-dest = /home/geek2/files/ `cat ~ /backup/ time2.txt`

See tähendab, et --link-dest käsu annab eelmise varunduse kataloogi. Kui kasutame varukoopiaid iga kahe tunni tagant ja kell 16:00 selle skripti käivitamise ajal, siis käivitab link - end kataloog, mis on loodud kell 14:00, ja edastab ainult sellest kuupäevast alates muutunud andmed( kui mõni).

Selleks, et korrata, et time.txt kopeeritakse skripti alguses ajaks2.txt, nii et link - end käsk saab seda aega hiljem viidata.

Sihtkataloog on määratud järgmiselt:

[email protected]: /home/geek2/files/ 'date +'% F-% I% p '`

See käsk lihtsalt paneb lähtefailid kataloogi, millel on praeguse kuupäeva ja kellaaja pealkiri.

Lõpuks veendume, et logifaili koopia paigutatakse varundusse.

scp-P 12345 ~ /backup/ rsync-`cat ~ /backup/ aeg.txt`.log [email protected]: /home/geek2/files/` kass ~ /backup/ aeg.txt` / rsync-`cat ~ /backup/ aeg.txt`.log

Kasutameturvaline kopeerimine porti 12345, et võtta rsynci logi ja asetada see õigesse kataloogi.Õige logifaili valimiseks ja veendumaks, et see jõuab õigesse kohta, peab faili time.txt olema viidatud kassi käsuga. Kui te ei tea, miks otsustasime katse time.txt asemel kasutada kuupäeva käsu, seepärast, et rsync käskluse käivitamisel võis olla palju aega, nii et veenduge, et meil on õige aeg, me lihtsalt kassvarem loodud tekstidokument.

automatiseerimine

Kasutage oma rsync-skripti automatiseerimiseks Cronit operatsioonisüsteemis Linuxis või tööülesannete planeerijat Windowsis.Üks asi, mida peate olema ettevaatlik, on tagada, et lõpetate kõik jooksvalt käivitatavad rsynci protsessid enne uue töö jätkamist. Tundmatud, et tööülesannete loend lõpetab kõik juba käimasolevad toimingud automaatselt, kuid Linuxi puhul peate olema natuke rohkem loominguline.

Enamik Linuxi distributsioone saab kasutada käsku pkill, seega lisage kindlasti oma rsync-skripti algusse järgmine:

pkill -9 rsync

krüptimine

Ei, me pole veel teinud. Lõpuks on meil fantastiline( ja tasuta!) Varukoopia lahendus, kuid kõik meie failid on endiselt vastuvõtlikud vargusele. Loodetavasti varundate oma failid mõne koha sajandite miili kaugusele. Pole tähtis kui turvaline see kaugel asi, on vargus ja häkkimine alati probleemid.

Meie näidete puhul oleme kõik meie rsync-liiklus läbi SSH-i tuneenud, seega tähendab see, et kõik meie failid on sihtriigis transportimise ajal krüptitud. Siiski peame tagama, et sihtkoht on sama turvaline. Pidage meeles, et rsync krüpteerib teie andmeid ainult siis, kui see on üle kantud, kuid failid on sihtkohta jõudmisel laiad avatud.

Üks rsynci parimatest omadustest on see, et see muudab ainult muudatused igas failis. Kui teil on kõik oma failid krüptitud ja tehke üks väike muudatus, tuleb krüptimise tulemusena kogu fail uuesti saata, et kõik muudatused pärast kõigi andmete muutmist täielikult randomiseerida.

Sellepärast on kõige parem / lihtsam kasutada mõnda tüüpi ketta krüpteerimist, näiteks BitLocker for Windows või Linux dm-crypt. Sel moel on teie andmed kaitstud varguse korral, kuid faile saab rsynciga üle kanda ja teie krüptimine ei takista selle toimivust. Olemas on ka teisi võimalusi, mis töötavad rsynciga sarnaselt või isegi mõnda selle vormi, näiteks Duplicity, kuid neil puuduvad mõned funktsioonid, mida rsync võib pakkuda.

Pärast seda, kui olete oma hetktõmmis varukoopiate seadistanud väljalülitatud asukohas ja krüpteerinud oma lähtekoodi ja sihtkoha kõvakettad, andke end selgeks, et rsync juhtida ja rakendada võimalikult pahatahtliku andmete varundamise lahendust.