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 cp
parancsok 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 azrsync
-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 azrsync
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, azrsync
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, azrsync
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 arsync
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/
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/
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.