Az Rsync parancs Linuxban példákkal

rsync egy gyors és sokoldalú parancssori segédprogram fájlok és könyvtárak szinkronizálására két hely között egy távoli héjon keresztül, vagy egy távoli Rsync démonról/re. Gyors inkrementális fájlátvitelt biztosít azáltal, hogy csak a forrás és a célállomás közötti különbségeket továbbítja.

Az Rsync használható adatok tükrözésére, inkrementális biztonsági mentésekre, fájlok másolására rendszerek között, valamint a scp, sftp és cpparancsok helyettesítésére.

Ez a cikk gyakorlati példákon és a leggyakoribb rsync opciók részletes magyarázatán keresztül mutatja be az rsync használatát.

Az Rsync telepítése #

A rsync segédprogram a legtöbb Linux-disztribúción és macOS-en előre telepítve van. Ha nincs telepítve a rsync a rendszereden, akkor könnyen telepítheted a disztribúciód csomagkezelőjével.

Install Rsync on Ubuntu and Debian #

sudo apt install rsync

Install Rsync on CentOS and Fedora #

sudo yum install rsync

Rsync Command Syntax #

Mielőtt rátérnénk az rsync parancs használatára, kezdjük az alapvető szintaxis áttekintésével.

A rsync segédprogram kifejezései a következő formájúak:

Local to Local: rsync ... ... DESTLocal to Remote: rsync ... ... HOST:DESTRemote to Local: rsync ... HOST:SRC... 
  • OPTION – Az rsync opciók.
  • SRC – Forráskönyvtár.
  • DEST – Célkönyvtár.
  • USER – Távoli felhasználónév.
  • HOST – Távoli állomásnév vagy IP-cím.

rsync számos olyan opciót biztosít, amelyek a parancs viselkedését szabályozzák. A leggyakrabban használt opciók a következők:

  • -a, --archive, archiválási mód, a -rlptgoD-nak felel meg. Ez az opció utasítja az rsync-t a könyvtárak rekurzív szinkronizálására, a speciális és blokkeszközök átvitelére, a szimbolikus hivatkozások, módosítási idők, csoportok, tulajdonjogok és jogosultságok megőrzésére.
  • -z, --compress. Ez az opció kikényszeríti, hogy az rsync tömörítse az adatokat a célgépre való elküldéskor. Csak akkor használja ezt az opciót, ha a távoli géppel való kapcsolat lassú.
  • -P, egyenértékű a --partial --progress-val. Ha ezt az opciót használja, az rsync az átvitel során előrehaladási sávot jelenít meg, és megtartja a részben átvitt fájlokat. Ez akkor hasznos, ha nagyméretű fájlokat lassú vagy instabil hálózati kapcsolaton keresztül továbbítunk.
  • --delete. Ha ezt az opciót használja, az rsync törli a felesleges fájlokat a célhelyről. Hasznos a tükrözésnél.
  • -q, --quiet. Ezt az opciót akkor használja, ha el akarja nyomni a nem hibaüzeneteket.
  • -e. Ez az opció lehetővé teszi egy másik távoli héj kiválasztását. Alapértelmezés szerint a rsync az ssh használatára van beállítva.

Basic Rsync Usage #

A rsync legalapvetőbb felhasználási esete egyetlen fájl másolása az egyik helyről egy másik helyi helyre. Íme egy példa:

rsync -a /opt/filename.zip /tmp/

A parancsot futtató felhasználónak olvasási jogokkal kell rendelkeznie a forráshelyen és írási jogokkal a célhelyen.

A fájlnév megadása a célhelyről az aktuális nevű fájlt másolja. Ha a fájlt más néven szeretné elmenteni, adja meg az új nevet a célhelyen:

rsync -a /opt/filename.zip /tmp/newfilename.zip

A rsync igazi ereje a könyvtárak szinkronizálásakor mutatkozik meg. Az alábbi példa azt mutatja, hogyan készíthetünk helyi biztonsági másolatot a weboldal fájljairól:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Ha a célkönyvtár nem létezik, a rsync létrehozza azt.

Érdemes megemlíteni, hogy a rsync eltérő bánásmódban részesíti a forráskönyvtárakat, amelyekben van egy hátul végződő perjel (/). Ha a forráskönyvtárban van zárójel, a parancs csak a könyvtár tartalmát másolja a célkönyvtárba. Ha a záróvesszőt elhagyja, a rsync a forráskönyvtárat a célkönyvtáron belülre másolja.

Az rsync használata adatok szinkronizálására távoli gépről/ távoli gépre #

Az rsync távoli adatátvitelhez való használatakor a programot telepíteni kell mind a forrás-, mind a célgépre. Az rsync új verziói úgy vannak beállítva, hogy az SSH-t használják alapértelmezett távoli shellként.

A következő példában egy könyvtárat viszünk át egy helyi gépről egy távoli gépre:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Ha nem állított be jelszó nélküli SSH bejelentkezést a távoli gépre, akkor a rendszer meg fogja kérdezni a felhasználó jelszavát.

A távoli gépről a helyi gépre történő adatátvitelhez használja a távoli helyet forrásként:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Ha az SSH a távoli állomáson az alapértelmezett 22-es porttól eltérő porton hallgat, adja meg a portot a -e opcióval:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Nagy mennyiségű adat átvitelekor ajánlott a rsync parancsot egy képernyőülésen belül futtatni, vagy a -P opciót használni:

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Fájlok és könyvtárak kizárása #

Fájlok és könyvtárak kizárására két lehetőség van. Az első lehetőség a --exclude argumentum használata, és a parancssorban meg kell adni a kizárni kívánt fájlokat és könyvtárakat.

A fájlok és könyvtárak kizárásakor a forráshelyhez viszonyított relatív elérési útvonalakat kell használni.

A következő példában a node_modules és tmp könyvtárak kizárása látható:

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

A második lehetőség a --exclude-from opció használata, és a kizárni kívánt fájlok és könyvtárak megadása egy fájlban.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
node_modulestmp

Következtetés #

Megmutattuk, hogyan használhatja az Rsync-et fájlok és könyvtárak másolására és szinkronizálására. Az Rsync-ről még sok mindent megtudhatsz az Rsync felhasználói kézikönyvoldalán.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.