Az Rsync fájlok másolása és szinkronizálása távoli szerverrel

hasznosság rsync használható fájlok és mappák másolására és szinkronizálására a helyi Linux szerverről a távolira és fordítva. Az Rsync lehetővé teszi az adatok másolását a biztonságos SSH-kapcsolaton belüli kiszolgálók között. ugyanúgy, rsync, Támogatja az adatok tömörítését menet közben, ami javítja a rendszer teljesítményét.

Az adatok elvesztésének megelőzése a fájlok küldésekor, rsync először az átvitt információkat átmeneti ideiglenes fájlba. Az rsync másik fontos jellemzője, hogy a fájlok egy adatfolyamba kerülnek, különálló adatfolyamot nem hoz létre minden fájlhoz (ami problémát okoz, ha nagyszámú kis fájlt más segédprogramokon továbbítanak).

Ebben a cikkben megvizsgáljuk a használati eseteket. rsync könyvtárak és fájlok szinkronizálása és másolása, valamint példák mutatása a speciális beállításokról.

Tartalom:

  • Telepítés és alapvető rsync opció
  • Rsync: helyi könyvtár másolás / szinkronizálás
  • Rsync: konfigurálja a szinkronizálást a távoli szerverrel
  • További példák az rsync használatára
  • Biztonsági másolat készítése Linuxon az rsync segítségével

Telepítés és alapvető rsync opció

telepítés rsync nem különbözik a telepítéstől, bármely más csomagtól. A CentOS-on az rsync csomag megtalálható az alapraktárban, és a yum (vagy a CentOS 8 esetén a dnf) telepíti:

# yum install rsync -y

A parancs szintaxisa a következő:

# rsync forrás-vevő beállításai

Forrásként és fogadóként megadhat egy helyi vagy távoli könyvtárat egy másik szerveren.

beállítások:

  • -v - a folyamattal kapcsolatos részletes információk megjelenítése
  • -c - ellenőrizze a fájl ellenőrző összegeit
  • -q - minimális információ
  • -a - archiválási mód
  • -R - relatív útvonalak
  • -y - ne írja felül az újabb fájlokat
  • -b - biztonsági mentés
  • -l - linkek másolása
  • -L - a link tartalmának másolása
  • -H - nyomtatott linkek másolása
  • -g - csoport mentése
  • -p - fájlok engedélyének mentése
  • -t - a módosítási idő megtakarítása
  • -x - csak ebben az FS-ben működik
  • -e - használjon másik szállítási protokollt (például ssh)
  • -z - tömörítse a fájlokat az átvitel előtt
  • -törlés - a forrásban nem lévő fájlok törlése
  • -kizárás - fájlok kizárása
  • -rekurzív - rekurzív módon ismételje meg a könyvtárakat
  • -no-rekurzív - a rekurzió letiltása
  • -folyamat - a fájlátvitel folyamatának megjelenítése
  • -stat - az átviteli statisztikák megjelenítése
  • -max-size - maximális fájlméret az átvitelhez
  • -bwlimit - a fájlátvitel sebességkorlátozása
  • -verzió - segédprogram verzió

Rsync: helyi könyvtár másolás / szinkronizálás

rsync használható fájlok másolásához a helyi kiszolgáló könyvtárak között. Ha fájlokat kell átmásolni az egyik könyvtárból a másikba, akkor futtassa a következő parancsot:

# rsync /var/www/html/package.zip / var / www / tmp /

Ebben az esetben a package.zip fájlt egyszerűen átmásolták a / var / www / tmp / könyvtárba.

Többféle lehetőséget is megadhat a másoláshoz. Például egy fájl előzetes tömörítéséhez a másolás előtt, a részletes információk megjelenítéséhez és a fájlmásolás folyamatához:

# rsync -vz --progress /var/www/html/package.zip / var / www / tmp /

Az rsync segítségével szinkronizálhatja a helyi könyvtárak tartalmát. Például az rsync akkor hasznos, ha fájlokat kell átmásolni a működő könyvtárból a lerakatba, amely valamilyen partícióra van felszerelve. Néhány példa a parancsokra:

# rsync -zvr / var / www / site / backup /

A / var / www / site könyvtárat a biztonsági mentési könyvtárba másoltuk -r engedélyezett az összes beágyazott könyvtár és fájl rekurzív másolására.

Az összes fájljellemző mentéséhez másoláskor, például a módosítási dátumot és a fájlok létrehozásának dátumát, adja hozzá a kulcsot -egy:

# rsync -zvra / var / www / site / backup /

Ha csak módosított fájlokat szeretne lemásolni, add hozzá a beállítást -c:

# rsync -zvrac / var / www / site / backup /

Csak egy fájlt módosítottam és futtattam a parancsot. Ennek eredményeként csak a módosított fájlt másolta a cél könyvtárba..

Nagyon kényelmes ezt a lehetőséget használni, ha a fájlok nem változnak gyakran. Így időt spórolhat a könyvtár másolására / szinkronizálására.

Annak érdekében, hogy ne zavarja meg a biztonsági mentési könyvtár, felvehet egy beállítást -töröl, ez lehetővé teszi a fájlok összehasonlítását a forrással, és ha a fájl a célkönyvtárban van, és ha a forráskönyvtárban nincs, akkor automatikusan törli. Felszólítom azonban arra, hogy ezt az opciót használja körültekintően, mert ha a könyvtárat a koronára másolja, hiba vagy külső zavar esetén a működő könyvtárba, amelyet a munkafájlok törlése követ, akkor biztonsági másolatban is információkat fog szerezni, amelyek nem teszik lehetővé az adatok visszaállítását. . Példa:

# rsync -zvrac - töröl / var / www / site / backup /

Rsync: konfigurálja a szinkronizálást a távoli szerverrel

Leggyakrabban másolás / szinkronizálás rsync A távoli szerverrel a fürtcsomópont-konfiguráció biztonsági mentéséhez vagy szinkronizálásához használható. Automatikusan szinkronizálhatja az adatokat a termelõkiszolgálótól a biztonsági mentésig, és a produktív északi résznél jelentkezõ problémák esetén mindent gyorsan vihet át a biztonsági mentésre. Ez egy meglehetősen kényelmes és könnyen konfigurálható lehetőség..

Az rsync modern verzióiban az SSH protokollt alapértelmezés szerint a fájlok átvitelére használják. Ugyanakkor használhatja az rsyncd démont is. Ehhez az rsync klienst telepíteni kell a távoli számítógépre, és hozzá kell adnia a démont az indításhoz:

# A Systemctl engedélyezi az rsyncd használatát

Az rsync konfigurációs fájl az /etc/rsyncd.conf. Ebben a fájlban konfigurálhatja az rsync beállításait és a szinkronizálás beállításait a különböző erőforrásokhoz.

Az rsync démonon keresztüli szinkronizáláshoz a távoli szerver címe rsync: //. Például:

# rsync -av /var/www/site/package.zip rsync: //192.168.1.32/backup

Fájl másolására egy távoli kiszolgálóra használja a következő parancsot:

# rsync -az /var/www/site/package.zip root @ IP: / backup /

Ahol az IP a távoli szerver címe. A parancs futtatása után a távoli kiszolgáló kéri a felhasználói jelszót (ha a jelszó-hitelesítés engedélyezve van). Az automatikus hitelesítéshez konfigurálnia kell az SSH kulcsokat.

Másolja a könyvtárat a helyi szerverről a távvezérlőre:

# rsync -zvra / var / www / site root @ IP: / backup /

Vagyis minden ugyanaz, mint a helyi könyvtárak, csak a távoli szerver címét adjuk meg.

Szinkronizálhatja a fájlokat egy távoli szerverről egy helyi fájlra is, ehhez a parancs kissé megváltozik:

# rsync -zvra root @ IP: / mentés / / mentés

Az SSH protokoll fájlok másolására történő használatának kényszerítéséhez adja meg ezt a parancsban (a -e opciót használják a fájlok másolására szolgáló szállítási protokoll kiválasztásához):

# rsync -zvrae ssh root @ IP: / backup / / backup

Ha a távoli SSH-kiszolgálón a szabványtól eltérő port is található, akkor azt megadhatja:

# rsync -zvrae "ssh -p 2222" root @ IP: / backup / / backup

További példák az rsync használatára

Ha sok információt továbbít a szinkronizálás során, és fontos, hogy korlátozza az átviteli sebességet, állítsa be ezt a -bwlimit opcióval (jelezze a sebességet KB / s-ban):

# rsync -zvra --bwlimit = 100 / var / www / site root @ IP: / backup /

Fájlok távoli kiszolgálóra történő átvitelekor korlátozhatja a másolni kívánt fájlok maximális méretét. Például az összes fájlt másolni szeretné, kivéve az 1 MB-nál nagyobb fájlokat:

# rsync -zvra --max-size = '1m' / var / www / site root @ IP: / backup /

Ha egyirányú szinkronizációra van szüksége a kiszolgálón, és a fájlok távoli kiszolgálóra történő átvitele után törölnie kell a fájlokat a forráskiszolgálón, használja a --eltávolítás-source-fájlok:

# rsync -zvra - eltávolítja a forrásfájlokat --progress /var/www/site/package.zip root @ IP: / backup /

A parancs végrehajtása után a fájlt átmásolták a távoli kiszolgálóra és törölték a forrásból:

Szintén nagyon kényelmes lehetőségek -tartalmaz és -kizár, ezen lehetőségek használatával kivételeket tehet a könyvtárak vagy fájlok másolására:

# rsync -zvra --exclude = adminisztrátor / / var / www / site root @ IP: / backup /

Ebben az esetben kizártuk az „adminisztrátor” könyvtárat, amikor a távoli kiszolgálóra másolunk.

# rsync -zvra --include = '*. php' --exclude = '*' / var / www / site / adminisztrátor / root @ IP: / backup /

Opció hozzáadásával -tartalmaz tudtuk beállítani a szűrőt fájlok szerint, csak a php kiterjesztésű fájlokat másoltuk.

Biztonsági másolat készítése Linuxon az rsync segítségével

A rabszolgámban egy részet használok rsync automatikus biztonsági mentési feladatokhoz Linux rendszeren. Írhat egyszerű bash szkripteket, vagy csak hozzáadhatja az rsync parancsot a cronhoz és az ütemezett végrehajtáshoz.

Például hozzáadhatja a cron parancsot:

01 30 * * * rsync -zvra root @ IP: / mentés / / mentés

Ennek eredményeként minden nap 1-30 éjszaka szinkronizálják a helyi és a távoli szerverek könyvtárait.

Érdemes megfontolni ezt a parancs végrehajtásához rsync távoli szerveren cronon keresztül, tanácsos a szerver hitelesítését SSH-kulcs segítségével konfigurálni. Példák a biztonsági másolat készítésére szolgáló szkriptekhez, amelyet a "A Linuxról a felhőbe mentő fájlok parancsfájljai" című cikkben írtunk, az rsync fájlt másolja a csatlakoztatott felhő tárolókba.