17Aug

A nem kezdő útmutató az adatok szinkronizálásához az Rsync segítségével

click fraud protection

Az rsync protokoll meglehetősen egyszerűen használható a hagyományos mentési / szinkronizálási feladatokhoz, de néhány fejlettebb funkciója meglepődhet. Ebben a cikkben megmutatjuk, hogy még a legnagyobb adattárolók és biztonsági rajongók is képesek az rsync-t egyetlen megoldásként felhasználni az összes adat redundancia igényének kielégítésére.

Figyelmeztetés: csak az Advanced Geeks

Ha ott ülsz, gondolkodsz "Mi a fene az rsync?" Vagy "Csak rsyncet használok az igazán egyszerű feladatokhoz", érdemes megnézni az előző cikket az rsync biztonsági mentésheza Linuxra vonatkozó adatai, amelyek bemutatják az rsync-t, útmutatást nyújtanak a telepítés során, és bemutatják az alapvető funkcióit. Miután rájöttél rsync használatára( őszintén szólva, ez nem összetett), és kényelmes egy Linux terminálon, készen áll arra, hogy továbblépjen erre a fejlett útmutatóra.

Az rsync futtatása a Windows

rendszeren Először nyissa meg a Windows olvasóinkat ugyanazon az oldalon, mint a Linux guruk. Annak ellenére, hogy az rsync úgy van megépítve, hogy futtatható legyen Unix-szerű rendszereken, nincs ok arra, hogy ne használja ugyanolyan egyszerűen a Windowson. A Cygwin egy csodálatos Linux API-t gyárt, amelyet használhatunk az rsync futtatásához, ezért menjünk át a weboldalukra és töltsük le a 32 bites vagy 64 bites verziót a számítógépétől függően.

instagram viewer

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

Most már meg kell tennie ugyanazokat a lépéseket a Vim és az SSH számára, de a csomagok kicsit másképp fognak kinézni, amikor kiválasztja őket, így itt vannak néhány screenshot:

Vim telepítése:

SSH telepítése:

kiválasztotta ezeket a három csomagot, addig folytassa a kattintást, amíg befejezi a telepítést. Ezután megnyithatja a Cygwin-t az ikonra kattintva, amelyet a telepítő elhelyez az asztalon.

rsync Parancsok: Egyszerűen fejlett

Most, hogy a Windows felhasználók ugyanazon az oldalon vannak, nézzük meg az egyszerű rsync parancsot, és mutassuk be, hogy néhány fejlett kapcsoló használata gyorsan összetetté teheti.

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

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

Vagy úgy, ahogy egy Cygwin Windows számítógépen nézne:

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

Nagyon egyszerű, éshogy pontosan nincs rá szükség az rsync használatára, mivel csak húzhatod és dobhatod le a fájlokat. Ha azonban a másik merevlemezen már van néhány fájl, és csak a frissített verziókkal és az utolsó szinkronizálás óta létrehozott fájlokkal kell rendelkeznie, ez a parancs azért hasznos, mert csak az új adatokat továbbítja a merevlemezre. Nagy fájlokkal, és különösen az interneten keresztül történő fájlok átvitelével ez nagy ügy.

A fájlok külső merevlemezre való mentése, majd a merevlemez ugyanolyan helyszínen tartása, mint a számítógép nagyon rossz ötlet, ezért vessünk egy pillantást arra, hogy mire lenne szükség a fájlok interneten történő küldéséhez egy másik számítógéphez(az egyiket bérelted, egy családtagot, 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éphez, amelynek IP címe a 10.1.1.1.Ez törölni fogja az extrém fájlokat a rendeltetési helyről, amely már nem létezik a forráskönyvtárban, kiadja az átruházott fájlneveket, így elképzelhető, hogy mi folyik itt, és az alagút rsync-t az SSH-n keresztül az 12345-ös porton.

Az -a -v -e --delete kapcsolók a legegyszerűbb és leggyakrabban használt;akkor már tudnod kell egy jó üzletet velük kapcsolatban, ha elolvassa ezt a bemutatót. Nézzünk át néhány olyan kapcsolót, amelyet néha figyelmen kívül hagyunk, de hihetetlenül hasznos:

- előretekerés - Ez a kapcsoló lehetővé teszi számunkra, hogy megnézzük az egyes fájlok átvitelét. Ez különösen hasznos nagy fájlok interneten történő átvitelénél, de értelmetlen adatmennyiséget tud kiadni, amikor csak kis fájlokat küld át egy gyors hálózaton.

Az rsync parancs a --progress kapcsolóval, mint mentés folyamatban van:

- partial - Ez egy másik kapcsoló, amely különösen hasznos nagy fájlok átvitelére az interneten keresztül. Ha az rsync bármilyen okból megszakad a fájl átvitelének közepén, a részlegesen átvitt fájl a célkönyvtárban marad, és az átvitel folytatódik, ahol abbahagyta az rsync parancs ismételt végrehajtását. Nagyméretű fájlok interneten történő átvitelénél( pl. Néhány gigabájt), nincs semmi rosszabb, mint néhány másodperces internetes kimaradás, kék képernyő vagy emberi hiba a fájl átvitelével, és újra kell kezdeni.

-P - ez a kapcsoló ötvözi a "progresszív" és a "partial" elemet, ezért használd helyette, és az rsync parancsot egy kicsit jobban csinálod.

-z vagy --compress - Ez a kapcsoló az rsync tömöríti a fájlok adatait az átvitel során, csökkentve az adatoknak a rendeltetési helyre küldött adatait. Ez valójában egy meglehetősen gyakori kapcsoló, de messze nem lényeges, csak nagyon előnyös a lassú kapcsolatok között, és nem tesz semmit az alábbi típusú fájlokhoz: 7z, avi, bz2, deb, g, z, jpeg, jpg,mov, mp3, mp4, ogg, rpm, tbz, tgz, z, zip.

-h vagy - emberileg olvasható - Ha a --standard kapcsolót használja, akkor biztosan ezt is használni fogod. Vagyis, hacsak nem szereted a bájtokat megabájtonként átállítani. A -h kapcsoló az összes kiadott számot átolvassa az ember által olvasható formátumba, így ténylegesen érthetővé válik az átvitt adatok mennyisége.

-n vagy --dry-run - Ez a kapcsoló elengedhetetlen ahhoz, hogy megtudja, mikor írja először az rsync parancsfájlt és teszteli. Végrehajt egy próbaüzemet, de valójában nem tesz semmilyen változást - az esetleges változások még mindig a szokásos módon kerülnek kiadásra, így mindenre képesek olvasni, és győződjenek meg róla, hogy rendben van, mielőtt a szkript forgatásba kerül.

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

--exclude-from - Ez a kapcsoló olyan kizárási listához kapcsolódik, amely könyvtárakat tartalmaz, amelyeket nem kíván biztonsági másolatot készíteni. Csak egy egyszerű szövegfájlra van szüksége egy könyvtár vagy fájl elérési útvonallal minden sorban.

--include-from - Hasonlóan a -exclude-from -hoz, de egy olyan fájlhoz kapcsolódik, amely könyvtárakat és fájlokat tartalmaz a biztonsági mentéshez.

- stats - Nem lényeges kapcsoló bármilyen eszközzel, de ha rendszergazda vagy, akkor hasznos tudni az egyes biztonsági másolatok részletes statisztikáit, hogy figyelemmel kísérhesse a hálózaton keresztül küldött forgalom mennyiségét és az ilyen.

--log-file - Ez lehetővé teszi az rsync kimenet küldését egy naplófájlba. Mindenképpen javasoljuk az automatizált biztonsági másolatok készítéséhez, amelyeken nem vagy ott, hogy maga elolvashassa a kimenetet. Mindig adjon naplófájlokat egyszer a szabad idejében, hogy minden rendben működjön. Ezenkívül döntő fontosságú kapcsoló a rendszergazda számára, így nem maradt azon tűnődve, hogy a mentések sikertelenek voltak, miközben elhagyta a gyakornokot.

Vessünk egy pillantást az rsync parancsra most, hogy van még pár kapcsoló:

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 egy tisztességes mentési megoldást. Annak ellenére, hogy fájlaink két különböző fizikai helyszínen találhatók, ez a biztonsági mentés nem nyújt védelmet az adatvesztés egyik fő okaival szemben: emberi hiba.

Pillanatfelvételek biztonsági mentése

Ha véletlenül törli a fájlt, a vírus megsérti a fájlokat, vagy valami más történik, amikor a fájlok nemkívánatosan megváltoztak, majd futtatja az rsync biztonsági parancsfájlt, a biztonsági másolatot felülírja a nem kívánt változásokkal. Amikor ilyen dolog történik( nem akkor, ha, hanem amikor), a biztonsági megoldás semmit sem tett meg, hogy megóvja az adatvesztést.

Az rsync létrehozója felismerte ezt, és hozzáadta a --backup és a --backup-dir argumentumokat, így a felhasználók különböző biztonsági mentéseket tudtak futtatni. Az rsync weboldalának első példája olyan szkriptet mutat be, amelyben a teljes biztonsági mentés hétnaponta működik, majd a fájlok módosításai naponta külön könyvtárakba kerülnek. A probléma ezzel a módszerrel az, hogy a fájlok helyreállításához ténylegesen vissza kell térni őket hét különböző időpontban. Ráadásul a legtöbb geek naponta többször futtatják a biztonsági másolataikat, így bármikor könnyedén 20 + különböző mentési könyvtárral rendelkezhet. Nem csak a fájlok fájljainak helyreállítása, hanem fájdalom is, de akár csak a biztonsági mentés alatt lévő adatok megtekintése is rendkívül időigényes lehet - tudnia kell, hogy a fájl utolsó módosításakor megtalálta a legújabb biztonsági másolatot. Ráadásul nem hatékony, hogy csak heti( vagy ritkábban néhány esetben) növekményes biztonsági másolatokat futtathat.

Pillanatfelvétel készítés a mentésre! A pillanatfelvétel-mentések nem többek, mint a növekményes biztonsági másolatok, de hardlinks-okat használnak az eredeti forrás fájlstruktúrájának megőrzéséhez. Lehet, hogy nehéz először beborítani a fejedet, ezért vessünk egy pillantást egy példára.

Feltételezzük, hogy van egy biztonsági másolati szkriptünk, amely automatikusan két óránként biztonsági másolatot készít az adatairól. Ha az rsync ezt teszi, mindegyik biztonsági másolatot a következő formátumban jelöli meg: Háttér-hónap-nap-időpont.

Így egy tipikus nap végén egy mappát találnánk a célkönyvtárunkban:

Az ilyen könyvtárak átkerülésével minden forrásfájlt a forráskönyvtárból pontosan úgy látnánk, mint az akkoriban. Mégis, nincs két másolat a két könyvtár között. Az rsync ezt a --link-dest = DIR argumentumon keresztül történő hardlinking használatával érte el.

Természetesen annak érdekében, hogy ezeket a szépen és idõszerûen elnevezett könyvtárakat megnevezzük, egy kicsit meg kell erõsítenünk az rsync szkriptet. Vessünk egy pillantást arra, hogy mi lenne ez egy ilyen biztonsági megoldás elérése, majd részletesebben elmagyarázzuk a szkriptet:

#!/bin/ bash

#kopy régi time.txt time2.txt

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

# felülírja a régi time.txt fájlt új idővel

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

#gyorsítsa be a naplófájlt

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

#rrsync parancs

rsync -avzhPR --chmod = Du = rwx, Dgo = rx, Fu = rw, Fgo = r --stats --log-file = ~ /backup/ rsync -'date + '% F-% I% p' '.log --exclude-from' ~ / exclude.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ájl megragadása és abackup

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

Eztipikus snapshot rsync parancsfájl lenne. Abban az esetben, ha valahol elvesztettük, leteszteljük darabonként:

A scriptünk első sorában a time.txt tartalmát a time2.txt fájlba másolja. Az igen cső megerősíti, hogy felül szeretnénk-e írni a fájlt. Ezután megragadjuk a pontos időt, és a time.txt fájlba helyezzük. Ezek a fájlok később hasznosak lesznek.

A következő sor az rsync naplófájlt hozza létre, amely rsync-date.log nevet ad meg( ahol a dátum a tényleges dátum és idő).

Most az összetett rsync parancs, amelyet figyelmeztettünk:

-avzhPR, -e, --delete, --stats, --log-fájl, --exclude-from, --link-dest - Justa kapcsolók, amelyekről korábban beszéltünk;gördíts felfelé, ha szüksége van egy frissítőre.

--chmod = Du = rwx, Dgo = rx, Fu = rw, Fgo = r - Ezek a jogosultságok a célkönyvtárhoz. Mivel ezt a könyvtárat az rsync parancsfájl közepén készítjük el, meg kell adnunk a jogosultságokat, hogy felhasználóink ​​fájlokat írhassanak hozzá.

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

A rsync parancson belül a dátum és a macskakomentumok minden egyes használatát meg fogjuk haladni, annak sorrendjében. Megjegyzés: tudatában vagyunk annak, hogy más módokon is el lehet érni ezt a funkciót, különösen a változók kijelentésével, de ennek az útmutatónak a használatával úgy döntöttünk, hogy ezt a módszert használjuk.

A naplófájl neve:

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

Alternatív megoldásként megadhatjuk:

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

Bármelyik módon, a --log-fájl parancsnak képesnek kell lennie arra, hogy megtalálja a korábban létrehozott napló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 parancs megadja az előző biztonsági mentés könyvtárát. Ha két óránként készítünk biztonsági másolatot, és a forgatókönyv végrehajtásakor 16:00 óra van, akkor a -link-dest parancs megkeresi a 14:00 órakor létrehozott könyvtárat, és csak akkor továbbítja az eltelt adatokat( ha van ilyen).

Ahhoz, hogy megismételjük, ezért a time.txt a parancsfájl elejére a time2.txt fájlra másolódik, így a --link-dest parancs később hivatkozhat rá.

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

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

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

Végül győződünk meg róla, 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

Használjukbiztonságos másolatot a 12345-ös porton az rsync napló elfogadásához és helyezze a megfelelő könyvtárba. A megfelelő naplófájl kiválasztásához, és győződjön meg róla, hogy a megfelelő helyre ér véget, a time.txt fájlt a cat paranccsal kell hivatkozni. Ha kíváncsi vagy, miért döntöttük el a cat time.txt helyett a dátum parancs használatát, az azért van, mert sok idő telhetett el, amíg az rsync parancs futott, így annak érdekében, hogy megbizonyosodjunk arról, hogy megfelelő időnk van,a korábban létrehozott szöveges dokumentum.

Automatizálás

Használja a Cron Linuxot vagy a Windows Task Scheduler programot az rsync parancsfájl automatizálására. Az egyik dolog, amire ügyelned kell, ügyelj arra, hogy befejezze a jelenleg 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 add hozzá az rsync parancsfájl kezdetéhez:

pkill -9 rsync

Titkosítás

Nem, még nem készültünk el. Végül van egy fantasztikus( és ingyenes!) Biztonsági megoldás a helyén, de az összes fájlunk még mindig hajlamos a lopásokra. Remélhetőleg biztonsági másolatot készítesz a fájlokról néhány száz mérföldre. Nem számít, milyen biztonságos a távoli hely, a lopás és a hackelés mindig problémákat okozhat.

Példáinkban az összes rsync forgalmat alagutattuk az SSH-n keresztül, így azt jelenti, hogy minden fájlunkat titkosítjuk, amíg a rendeltetési helyükre átutazunk. Biztosítani kell azonban, hogy a cél ugyanolyan biztonságos legyen. Ne felejtse el, hogy az rsync csak az adatok átruházásakor titkosítja az adatait, de a fájlok nyitva vannak, miután elérték a célállomást.

Az egyik rsync legjobb tulajdonsága az, hogy csak az egyes fájlok változásait továbbítja. Ha az összes fájlját titkosítja és egy kisebb módosítást hajt végre, az egész fájlt vissza kell küldenie a titkosítás eredményeképpen, minden változás után teljesen fel kell sorolni az összes adatot.

Ezért a legjobb / legegyszerűbb valamilyen típusú lemezkódolást használni, például BitLocker for Windows vagy dm-crypt for Linux.Így az adatok védettek a lopás esetén, de a fájlok átvihetők az rsync segítségével, és a titkosítás nem akadályozza a teljesítményét. Vannak más opciók is, amelyek az rsynchez hasonlóan működnek, vagy akár megvalósíthatják valamilyen formáját is, például a Duplicity-t, de hiányoznak az rsync által kínált jellemzők.

Miután beállította pillanatfelvétel-mentéseit egy offsite helyszínen, és titkosította a forrás- és rendeltetési merevlemezeket, adjon magának egy hátrányt az rsync elsajátításához és a lehető legbiztonságosabb adatmentési megoldáshoz.