Homepage » hogyan kell » A nem kezdő kezdő útmutató az adatok szinkronizálásához az Rsync-szel

    A nem kezdő kezdő útmutató az adatok szinkronizálásához az Rsync-szel

    Az rsync protokoll nagyon egyszerű a szokásos biztonsági mentési / szinkronizálási feladatokhoz, de néhány fejlettebb funkciója meglephet. Ebben a cikkben megmutatjuk, hogy még a legnagyobb adatgyűjtők és biztonsági mentők is használhatják az rsync-et, mint egyetlen megoldást az összes adatcsere-szükségletre.

    Figyelmeztetés: csak a fejlett geeks

    Ha ott ül, arra gondolt, hogy „Mi a fene az rsync?” Vagy „Csak az rsync-t használom az egyszerű feladatokhoz”, érdemes megnézni az előző cikkünket arról, hogyan használhatja az rsync-t az adatok biztonsági mentéséhez Linuxon, ami Bevezetés az rsync-be, vezeti a telepítést, és bemutatja az alapvető funkcióit. Miután szilárdan megértette, hogyan kell használni az rsync-t (őszintén, hogy nem olyan összetett) és kényelmes a Linux terminállal, készen áll arra, hogy továbbléphessen erre a speciális útmutatóra.

    Az rsync futtatása Windows rendszeren

    Először is, kapjuk meg a Windows olvasóinkat ugyanazon az oldalon, mint a Linux guruk. Annak ellenére, hogy az rsync Unix-szerű rendszerekre futtatható, nincs ok arra, hogy ne használhassa azt ugyanolyan könnyen a Windows rendszeren. A Cygwin egy csodálatos Linux API-t termel, amelyet az rsync futtatására használhatunk, így a számítógépedtől függően menj át a webhelyükre és töltsd le a 32 vagy 64 bites verziót.

    A telepítés egyszerű; az összes opciót az alapértelmezett értékeken tarthatja, amíg el nem éri a „Csomagok kiválasztása” képernyőt.

    Most meg kell tennie ugyanazt a lépést a Vim és az SSH esetében, de a csomagok kicsit másnak fognak tűnni, amikor kiválasztja őket, ezért itt van néhány képernyőkép:

    A Vim telepítése:

    Az SSH telepítése:

    Miután kiválasztotta a három csomagot, tartsa nyomva a következőt, amíg befejezi a telepítést. Ezután megnyithatja a Cygwin-t, ha rákattint a telepítő által az asztalra helyezett ikonra.

    rsync Parancsok: Egyszerű a Haladóhoz

    Most, hogy a Windows-felhasználók ugyanazon az oldalon vannak, nézzük meg az egyszerű rsync parancsot, és mutassuk meg, hogy egyes fejlett kapcsolók használata gyorsan bonyolíthatja.

    Tegyük fel, hogy van egy csomó fájl, amelyre szükségük van biztonsági mentésre - ki nem ezekben a napokban? Csatlakoztathatja a hordozható merevlemezt, így biztonsági mentést készíthet a számítógépes fájljairól, és a következő parancsot adhatja ki:

    rsync -a / home / geek / files / / mnt / usb / fájlok /

    Vagy, ahogyan a Cygwin-nel egy Windows számítógépen nézne meg:

    rsync -a / cygdrive / c / fájlok / / cygdrive / e / fájlok /

    Elég egyszerű, és ekkor nincs szükség rsync használatára, mivel egyszerűen csak húzhatod és törölheted a fájlokat. Ha azonban a másik merevlemezén már van néhány fájlja, és csak a legutóbbi szinkronizálás óta létrehozott frissített verziókat és fájlokat igényli, ez a parancs hasznos, mert csak az új adatokat továbbítja a merevlemezre. Nagy fájlok és különösen az interneten keresztül történő fájlok átvitele nagy dolog.

    Fájlok biztonsági mentése külső merevlemezre, majd a merevlemez megtartása ugyanazon a helyen, mint a számítógép, egy nagyon rossz ötlet, ezért nézzük meg, mit kell tennie ahhoz, hogy elindítsa a fájlokat az interneten egy másik számítógépre ( egy bérelt személy, egy családtag, stb.).

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

    A fenti parancs elküldi a fájlokat egy másik számítógépre, amelynek IP-címe 10.1.1.1. Törli az idegen fájlokat a célkönyvtárból, amely már nem létezik a forráskönyvtárban, és kiadja az átadott fájlneveket, így van egy ötlete arról, hogy mi történik, és az alagút rsync keresztül az SSH-n keresztül a 12345-ös porton.

    A -a -v -e - törölni a kapcsolók a legalapvetőbbek és a leggyakrabban használtak; már tudnod kell egy jó üzletet róluk, ha elolvasod ezt a bemutatót. Menjünk át más kapcsolókon, amelyeket néha figyelmen kívül hagynak, de hihetetlenül hasznosak:

    --haladás - Ez a kapcsoló lehetővé teszi, hogy megnézzük az egyes fájlok átviteli folyamatát. Különösen hasznos nagy fájlok átvitele az interneten keresztül, de értelmetlen mennyiségű információt képes kiadni, amikor a kis fájlok átvitele gyors hálózaton keresztül történik.

    Az rsync parancs a --haladás váltás a mentés közben:

    --részleges - Ez egy másik kapcsoló, amely különösen akkor hasznos, ha nagy fájlokat ad át az interneten. Ha az rsync valamilyen okból megszakad egy fájlátvitel közepén, akkor a részlegesen átvitt fájl a célkönyvtárban marad, és az átvitel akkor folytatódik, ahol az rsync parancs ismételt végrehajtása után kikapcsol. Nagy fájlok átvitele az interneten keresztül (pl. Néhány gigabájt), nincs semmi rosszabb, mint néhány másodperces internetkiesés, kék képernyő, vagy emberi hiba, amellyel a fájlátvitel megtörténhet, és újra kell kezdeni.

    -P - ez a kapcsoló egyesül --haladás és --részleges, ezért használja azt, és az rsync parancsot egy kis neater-nek teszi.

    -Z vagy --borogatás - Ez a kapcsoló az rsync tömöríti a fájladatokat az átadáskor, csökkentve a célállomásra küldendő adatok mennyiségét. Valójában ez egy meglehetősen gyakori kapcsoló, de messze nem lényeges, csak a lassú kapcsolatok közötti átutalásokban részesül, és nem tesz semmit a következő típusú fájlokhoz: 7z, avi, bz2, deb, g, z iso, jpeg, jpg, mov, mp3, mp4, ogg, rpm, tbz, tgz, z, zip.

    -h vagy --ember által olvasható - Ha a --haladás kapcsolót, akkor biztosan ezt is szeretné használni. Vagyis, ha nem szeretné, hogy a bájtokat megabájtra konvertálja. A -h A kapcsoló az összes kimenő számot emberi olvasható formátumra konvertálja, így ténylegesen megértheti az átvitt adatok mennyiségét.

    -n vagy --szárazon futás - Ez a kapcsoló elengedhetetlen ahhoz, hogy megtudja, mikor írja először az rsync parancsfájlját és kipróbálja azt. Próbaüzenetet hajt végre, de valójában nem tesz semmilyen változtatást - a lehetséges változások még mindig a szokásos módon kerülnek kiadásra, így mindent meg lehet olvasni, és győződjön meg róla, hogy rendben van, mielőtt a szkriptet a termelésbe gördítené.

    -R vagy --relatív - Ezt a kapcsolót akkor kell használni, ha a célkönyvtár már nem létezik. Ezt az opciót később az útmutatóban fogjuk használni, hogy a célgépen könyvtárakat tudjunk készíteni a mappanevek időbélyegzőivel.

    --kizárja-re - Ezt a kapcsolót arra használjuk, hogy egy olyan kizárási listára hivatkozzon, amely olyan könyvtárútvonalakat tartalmaz, amelyeket nem szeretne menteni. Csak egy egyszerű szövegfájlra van szüksége, amelyen minden soron könyvtár vagy fájlút található.

    --közé tartoznak-a - Hasonló --kizárja-re, de olyan fájlra hivatkozik, amely könyvtárakat és fájlokat tartalmazó fájlokat tartalmaz.

    --statisztika - Nem igazán fontos kapcsoló bármilyen eszközzel, de ha sysadmin vagy, akkor hasznos lehet az egyes biztonsági másolatok részletes statisztikáinak ismerete, így figyelemmel kísérheti a hálózaton keresztül küldött forgalom mennyiségét..

    --log fájl - Ezzel az rsync kimenetet naplófájlba küldheti. Ezt minden bizonnyal ajánljuk az olyan automatikus biztonsági mentéseknél, amelyekben Ön nem tudja olvasni a kimenetet. Mindig adjon naplófájlokat egyszer a szabadidőben, hogy megbizonyosodjon arról, hogy minden megfelelően működik. Továbbá, ez egy döntő kapcsoló a sysadmin használatához, így nem hagyja abba, hogy a biztonsági mentések nem sikerültek-e, amikor a gyakornokot elhagyta.

    Vessünk egy pillantást rsync parancsunkra, hogy még néhány kapcsoló van hozzáadva:

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

    A parancs még mindig elég egyszerű, de még mindig nem hoztunk létre tisztességes biztonsági megoldást. Bár a fájljaink két különböző fizikai helyen vannak, ez a biztonsági mentés nem tesz semmit, hogy megvédjen minket az adatvesztés egyik fő okától: emberi hiba.

    Pillanatfelvétel mentések

    Ha véletlenül töröl egy fájlt, egy vírus megrongálja a fájljait, vagy valami más történik, aminek következtében a fájlokat nem kívánatosan módosítják, majd futtatja az rsync biztonsági mentési parancsfájlt, a biztonsági másolatát felülírja a nemkívánatos változások. Ha ilyen dolog történik (nem, ha, de mikor), a biztonsági mentési megoldás nem tett semmit, hogy megvédje Önt az adatvesztés ellen.

    Az rsync alkotója ezt felismerte, és hozzáadta a --biztonsági mentés és --mentési-dir érvek, így a felhasználók differenciál biztonsági mentéseket futtathatnak. Az első példa az rsync webhelyén olyan szkriptet mutat, ahol egy teljes biztonsági mentést hétnaponként futtatnak, majd a fájlok módosításai naponta külön könyvtárakban kerülnek mentésre. Ennek a módszernek az a problémája, hogy a fájlok helyreállításához hatékonyan kell helyreállítani őket hét alkalommal. Ezen túlmenően a legtöbb geeks naponta többször is lefuttatja a biztonsági másolatait, így bármikor könnyedén 20+ különböző biztonsági mentési könyvtárat kaphat. Nemcsak fájdalmat okoz a fájlok helyreállítása, de még csak a biztonsági másolatok átnézése is rendkívül időigényes lehet - tudnod kell, hogy mikor történt a fájl utolsó módosítása, hogy megtalálja a legutóbbi biztonsági másolatot. Mindezeken túlmenően csak hetente (vagy kevésbé ritkán bizonyos esetekben) növekményes biztonsági mentések futtatása nem hatékony.

    Pillanatkép biztonsági mentés a mentésre! A pillanatfelvétel mentése nem más, mint az inkrementális mentés, de a hardlinks használatával megőrzi az eredeti forrás fájlszerkezetét. Ez nehéz lehet a fejedet először becsomagolni, ezért nézzük meg a példát.

    Tegyük fel, hogy van egy biztonsági mentési parancsfájl, amely két óránként automatikusan biztonsági mentést készít az adatokról. Amikor az rsync ezt teszi meg, minden egyes biztonsági másolatot a következő formátumban nevez meg: Backup-month-day-year-time.

    Tehát a végén egy tipikus nap van egy listája a célkönyvtárban található mappákról:

    Ha ezeken a könyvtárakon áthalad, minden fájlt a forráskönyvtárból pontosan ugyanúgy látott. Mégis, nem lenne két példány két könyvtár között. Az rsync ezt a. \ t --link-dest = DIR érv.

    Természetesen, annak érdekében, hogy ezeket a szépen és szépen dátumozott könyvtárneveket nevezzük, egy kicsit meg kell felnőznünk az rsync parancsfájlunkat. Vessünk egy pillantást arra, amit egy ilyen biztonsági mentési megoldás megvalósításához szükséges, majd részletesebben elmagyarázzuk a szkriptet:

    #! / Bin / bash

    #copy old time.txt az time2.txt értékre

    igen | cp ~ / backup / time.txt ~ / backup / time2.txt

    #overwrite old time.txt fájl új idővel

    echo 'date +'% F-% I% p ”'> ~ / backup / time.txt

    #hozza a naplófájlt

    echo “”> ~ / backup / rsync-'date + ”% F-% I% p” 'napló

    #rsync parancs

    rsync -avzhPR --chmod = Du = rwx, Dgo = rx, Fu = rw, Fgo = r --delete --stats --log-file = ~ / backup / rsync-'date + "% F-% I% p ”'. log --exclude-from' ~ / záró.txt '--link-dest = / home / geek2 / files /' cat ~ / backup / time2.txt '-e' ssh -p 12345 '/ home / geek / files / [email protected]: / home / geek2 / files / 'dátum +'% F-% I% p '' /

    # Ne felejtsd el a naplófájlt, és tedd a biztonsági másolatba

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

    Ez egy tipikus pillanatkép rsync parancsfájl lenne. Abban az esetben, ha valahol elvesztünk, szétválaszoljuk darabonként:

    A parancsfájl első sora az time.txt tartalmát az time2.txt fájlba másolja. Az igen cső megerősíti, hogy felül akarjuk írni a fájlt. Ezután megteszi az aktuális időt, és helyezzük time.txt-be. Ezek a fájlok később hasznosak lesznek.

    A következő sorban az rsync naplófájl neve rsync-date.log (ahol a dátum az aktuális dátum és idő).

    Most, az összetett rsync parancs, amelyről figyelmeztettünk:

    -avzhPR, -e, --delete, --stats, --log-file, -exclude-from, --link-dest - Csak a kapcsolókról beszéltünk korábban; lapozzunk felfelé, ha frissítésre van szükség.

    --chmod = Du = rwx, DGO = rx, Fu = RW, Fgo = r - Ezek a célkönyvtár engedélyei. Mivel ezt a könyvtárat rsync parancsfájlunk közepén állítjuk elő, meg kell adnunk az engedélyeket, hogy felhasználóink ​​fájlokat írhassanak hozzá.

    A dátum és a macska parancsok használata

    Átmegyünk az rsync parancson belüli dátum- és macskaparancsok minden egyes használatánál, azok sorrendjében. Megjegyzés: tudatában vagyunk annak, hogy ennek a funkciónak a megvalósításához más módok is vannak, különösen a változók deklarálásával, de ennek az útmutatónak az alkalmazásában úgy döntöttünk, hogy ezt a módszert használjuk.

    A naplófájl a következőképpen van megadva:

    ~ / backup / rsync-'date + '% F-% I% p' '

    Alternatívaként azt is meghatároztuk, hogy:

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

    Akárhogy is, a --log fájl A parancsnak képesnek kell lennie arra, hogy megtalálja a korábban létrehozott dátumnaplófájlt és írjon rá.

    A hivatkozás célfájlja a következő:

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

    Ez azt jelenti, hogy a --link-dest a parancs az előző biztonsági másolat könyvtárát adja meg. Ha kétóránként biztonsági mentéseket futtatunk, és a parancsfájl futtatásakor 16:00 óra van, akkor a --link-dest parancs megkeresi a 14:00 órakor létrehozott könyvtárat, és csak azóta megváltozott adatokat továbbítja (ha van ilyen).

    Ismételje meg, ezért a time.txt a script elején másolódik az time2.txt-be, így a --link-dest a parancs későbbi időpontra hivatkozhat.

    A célkönyvtár a következőképpen van megadva:

    [email protected]: / home / geek2 / files / 'dátum +'% F-% I% p ''

    Ez a parancs egyszerűen a forrásfájlokat egy olyan könyvtárba helyezi, amely az aktuális dátum és idő címével rendelkezik.

    Végül meggyőződünk arról, hogy a naplófájl egy példánya a biztonsági másolatba kerül.

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

    Biztonságos másolatot használunk a 12345-ös porton az rsync napló készítéséhez és a megfelelő könyvtárba való elhelyezéséhez. A megfelelő naplófájl kiválasztásához, és győződjön meg róla, hogy az a megfelelő helyre kerül, a time.txt fájlt a cat parancs segítségével kell hivatkozni. Ha kíváncsi vagyunk arra, hogy miért döntöttünk úgy, hogy a time.txt macska helyett csak a dátumparancsot használjuk, akkor az rsync parancs futása közben sok idő fordult elő, így megbizonyosodhat arról, hogy megfelelő idő áll rendelkezésre a korábban létrehozott szöveges dokumentumot.

    Automatizálás

    Az rsync-parancsfájl automatizálásához használja a Linuxot a Cron vagy a Windows Task Scheduler segítségével. Az egyik dolog, amit óvatosnak kell lennie, gondoskodik arról, hogy befejezze az aktuálisan futó rsync folyamatokat, mielőtt folytatna egy újat. Úgy tűnik, hogy a Feladatütemező automatikusan bezárja a már futó példányokat, de a Linux számára egy kicsit kreatívabbnak kell lennie.

    A legtöbb Linux disztribúció használhatja a pkill parancsot, ezért csak győződjön meg róla, hogy a következőt a rsync parancsfájl elejére adjuk:

    pkill -9 rsync

    Encryption

    Nem, még nem vagyunk. Végül van egy fantasztikus (és ingyenes!) Mentési megoldásunk, de minden fájlunk még mindig sebezhető. Remélhetőleg biztonsági másolatot készít a fájlokról több száz mérföldre. Nem számít, mennyire biztonságos a távoli hely, a lopás és a hackelés mindig problémát jelenthet.

    Példáinkban az SSH-n keresztül az összes rsync-forgalmat lefedtük, így az összes fájlunkat titkosítjuk a rendeltetési helyükre történő szállítás közben. Ugyanakkor meg kell győződnünk arról, hogy a célállomás ugyanolyan biztonságos. Ne feledje, hogy az rsync csak titkosítja az adatokat az átadáskor, de a fájlok nyitva vannak, miután elérték a célt.

    Az rsync egyik legjobb tulajdonsága, hogy csak az egyes fájlok változásait adja át. Ha az összes fájlja titkosítva van, és egy kisebb változtatást hajt végre, a teljes fájlt újra kell küldeni a titkosítás eredményeként, amely minden adat megváltoztatása után véletlenszerűen történik..

    Ezért a legjobb / legegyszerűbb valamilyen lemez titkosítás használata, például a BitLocker for Windows vagy a dm-crypt Linux számára. Így adatait a lopás esetén védik, de a fájlokat az rsync segítségével lehet átvinni, és a titkosítás nem akadályozza annak teljesítményét. Vannak más lehetőségek is, amelyek hasonlóan működnek az rsync-hez, vagy akár valamilyen formában is megvalósíthatók, mint például a kettősség, de hiányoznak az rsync által kínált funkciók..

    Miután beállította a pillanatfelvétel biztonsági mentéseit egy külső helyszínen, és titkosította a forrás- és rendeltetési merevlemezeket, adjon magának pattogatót az rsync elsajátításához és a legmegfelelőbb adatmentési megoldás megvalósításához.