cs:navody:rsync:start

Rsync

Pro běžné uživatele

  • Tato varianta je vhodná pro uložení souborů jednoho uživatele, za předpokladu, že není potřeba zachovávat údaje o vlastnictví souborů.
  • K úložišti je možno takto přistupovat z různých strojů - např. provést zálohu jednoho systému, ale obnovu souborů udělat na více strojů (s různou vazbou mezi uživ.účty a uživ. identifikátory uid/gid).
Doporučujeme při využívání rsyncu používat parametry –numeric-ids a –rsync-path=„rsync –fake-super“, čímž nedojde k mapování skupin na skupiny na úložišti, ale tyto údaje se uloží to extended atributů.

Dále je dobré kvůli možným problémům se změnou práv na nadřazeném adresáři, nespecifikovat znak „/“ na konci definice zdrojové cesty.

V neposlední řadě se prosím vyhněte zálohování dat přímo do home adresáře. Pro ukládání dat slouží adresáře jednotlivých migračních politik.

Podrobněji rozbor problémů

Podrobněji rozbor problémů

- Při používání rsyncu je důležité si dávat pozor na ukončování definice cest. Pokud totiž použiteje zdrojovou cestu ukočenou znakem „/“:
rsync -a ./data/ username@ssh.du4.cesnet.cz:~/VO_storage-tape_tape
dojde ke změně práv nadřazeného adresáře, což je v naší ukázce home adresář. Tím se můžete dostat do stavu, kdy změna práv umožní přístup i ostatním uživatelům k vašim datům! Pokud bychom však zdrojovou cestu nezakončili znakem „/“:
rsync -a ./data username@ssh.du4.cesnet.cz:~/VO_storage-tape_tape
bude již vše v pořádku, protože rsync veme celou strukturu a tu překopíruje.
- Domovský adresář by však neměl sloužit, jako uložiště pro samotná data, na to jsou určeny adresáře představující migrační politiku. Z toho důvodu je velmi důležítě se seznámit s adresářovou strukturou na úložišti před náhráváním dat. Pokud toto pravidlo vždy dodržíte, vyhnete se problému se změnou práv na nadřazeném adresáři viz odstavec výše.
- V případě špatných parametrů rsyncu, kdy došlo ke změně skupin na nahraných datech a zárověn se jedná o větší množství dat, neprovádějte prosím nápravu sami, ale napište nám.

DU4 Ostrava ssh.du4.cesnet.cz
DU5 Jihlava ssh.du5.cesnet.cz

Řádkový rsync klient (Linux, Windows/cygwin)

Instalace rsync klienta pro příkazový řádek v prostředí Windows/Cygwin
V prostředí GNU/Linux instalace rsync ve většině distribucí dostupná přímo ze správce balíčků.

Nedoporučujeme používat přepínač -c (–checksum) na offline data (data odmigrovaná na pásky). Jeho použití by vedlo k přesunu dat zpět na disky při každém porovnávání souborů. Výsledkem by byly velké zpoždění.
V případě většího počtu offline souborů doporučujeme použít přepínač -W.

Příklad použití pro zálohování adresářového stromu folder na účet user serveru host do složky path (rsync formát):

rsync -av ./folder user@host:path

Příklad obnovení adresářového stromu folder z účtu user serveru host do aktuálního adresáře.

rsync -av user@host:path/folder .

GUI rsync klient Grsync (Windows, Linux)

Návod byl sepsán a testován pro násl. verze:
grsync v.0.6.3 na OS Windows XP, grsync v.0.9.2 na OS Linux
Jiné verze Grsync, případně i běžící na jiném operačním systému se mohou chovat nebo vypadat trochu jinak.

Instalace programu Grsync pod Windows

Grafické rozhraní programu Grsync ve Windows:
Grsync ve Windows

Grafické rozhraní pod GNU Linux / Xorg:
Grsync v Linuxu

Popis grafického rozhraní

  1. … zde je možno definovat a uložit předdefinované servery.
  2. … zdrojové umístění (rsync formát, tj.user@host:path)
  3. … cílové umístění (rsync formát)
  4. … Pozor: výzva k zadání přístupového hesla serveru nebo SSH klíče se může objevit v příkazovém okně, ze kterého byl program spuštěn, nebo které se spouští automaticky na pozadí.
  5. … Při najetí myší nad zaškrtávací volby se zobrazuje nápověda s uvedením příslušného parametru pro řádkový rsync.

Pro správce serverů

  • Tato varianta použití služby rsync je vhodná pro uložení synchronizované zálohy souborového systému s údaji o vlastnictví a přístupových právech, kde je třeba tyto údaje u souborů zachovat.
  • Např. zálohování souborového serveru, který je využíván více uživateli a při případné obnově souborů ze zálohy musí být nastaveno vlastnictví a přístupová práva shodně jako u originálních souborů.
Podmínky použití této varianty:
  • v průběhu používání služby nad určitým adresářovým stromem je třeba volat rsync se stále stejným nastavením parametrů --numeric-ids a --fake-super
  • množina uživatelů ve zdrojovém systému musí mít neměnné přiřazení číselných identifikátorů účtů (uid/gid).
  • k úložišti je třeba přistupovat pouze z jednoho zdrojového systému, nebo z více systémů, které ale mají stejné přiřazení číselných identifikátorů účtů (uid/gid).
  • nedoporučujeme použití GUI klienta grsync pod Windows v této variantě - v testech se zde objevilo nesprávné mapování uid/gid uživatelů.

Nedodržením těchto podmínek dojde velmi pravděpodobně k nekonzistenci údajů o vlastnictví souborů. V případě špatných parametrů rsyncu, kdy došlo ke změně skupin na nahraných datech a zárověn se jedná o větší množství dat, neprovádějte prosím nápravu sami, ale napište nám.

Je dobré kvůli možným problémům se změnou práv na nadřazeném adresáři, nespecifikovat znak „/“ na konci definice zdrojové cesty.

V neposlední řadě se prosím vyhněte zálohování dat přímo do home adresáře. Pro ukládání dat slouží adresáře jednotlivých migračních politik.

Podrobněji rozbor problémů

Podrobněji rozbor problémů

- Při používání rsyncu je důležité si dávat pozor na ukončování definice cest. Pokud totiž použiteje zdrojovou cestu ukočenou znakem „/“: rsync -a ./data username@ssh.du4.cesnet.cz:~/VO_storage-tape_tape dojde ke změně práv nadřazeného adresáře, což je v naší ukázce home adresář. Tím se můžete dostat do stavu, kdy změna práv umožní přístup i ostatním uživatelům k vašim datům! Pokud bychom však zdrojovou cestu nezakončili znakem „/“: rsync -a ./data username@ssh.du4.cesnet.cz:~/VO_storage-tape_tape bude již vše v pořádku, protože rsync veme celou strukturu a tu překopíruje.

- Domovský adresář by však neměl sloužit, jako uložiště pro samotná data, na to jsou určeny adresáře představující migrační politiku. Z toho důvodu je velmi důležítě se seznámit s adresářovou strukturou na úložišti před náhráváním dat. Pokud toto pravidlo vždy dodržíte, vyhnete se problému se změnou práv na nadřazeném adresáři viz odstavec výše.

Význam použitých parametrů
Nedoporučujeme používat přepínač -c (–checksum) na offline data (data odmigrovaná na pásky). Jeho použití by vedlo k přesunu dat zpět na disky při každém porovnávání souborů. Výsledkem by byly velké spoždění.
V případě většího počtu offline souborů doporučujeme použít přepínač -W.

--numeric-ids

  • při použití tohoto parametru serverový proces nepoužije k mapování uid/gid hodnot uživatelská/skupinová jména, ale použije přímo číselné hodnoty uid/gid ze zdrojového systému.
  • hodnoty uid/gid se proto nesmí měnit a je nutné v jednou adresářovém stromu parametr buď používat stále nebo vůbec nepoužívat.

--rsync-path

  • tento parametr umožňuje předat parametry serverovému procesu - v této variantě je využíván k předání parametru --fake-super:
    --rsync-path="rsync --fake-super"

--fake-super

  • tento parametr zapíná na serverové straně emulaci superuživatelského módu a rsync pak ukládá údaje o vlastnictví a přístupových právech do rozšířených attributů (xattrs)

--super

  • tento parametr vynucuje superuživatelské chování - změny vlastníků a práv u souborů. V testech byl potřeba pouze při obnově souborů na klienta pod OS Windows. Pozor: při odesílání souborů na nesuperuživatelský účet nelze tento parametr použít (správná volba je v tomto případě parametr --fake-super v --rsync-path).

Řádkový rsync klient (Linux, Windows/cygwin)

Linux

Příklad použití pro zálohování adresářového stromu folder na účet user serveru host do složky path:

rsync -av --numeric-ids --rsync-path="rsync --fake-super" ./folder user@host:path

Příklad obnovení adresářového stromu folder z účtu user serveru host do aktuálního adresáře.

rsync -av --numeric-ids --rsync-path="rsync --fake-super" user@host:path/folder .
Windows/Cygwin

Příklad zálohování a obnovy adresáře uživatele Adminstrator pod Windows:

rsync -av --numeric-ids --rsync-path="rsync --fake-super" /cygdrive/c/Documents\ and\ Settings/Administrator user@host:path

Při obnově pod Windows může být potřeba dodatečný parametr --super pro správné obnovení informací o vlastnictví souborů a přístupových právech:

rsync -av --numeric-ids --super --rsync-path="rsync --fake-super" user@host:path/ /cygdrive/c/Documents\ and\ Settings/restore

Formát zápisu zdroje a cíle

Obecný zápis vzdáleného umístění:

uživatel@server:cesta

kde:

  • uživatel … uživatelské jméno účtu, na který v datovém úložišti přistupujeme.
  • server … doménové jméno serveru datového úložiště.
  • cesta … cesta v souborovém systému datového úložiště relativní vůči domovskému adresáři uživatele.
DU4 Ostrava ssh.du4.cesnet.cz
DU5 Jihlava ssh.du5.cesnet.cz

Příklad:

user@ssh.du4.cesnet.cz:VO_storage-tape_tape/zalohy/1205-kveten
Znak "/" (resp. "\" u Windows mimo Cygwin) na konci definice zdrojového umístění má u rsyncu speciální význam:
  • … použijete-li na konci uvedený znak, pracuje se s celým adresářem (složkou), tj. adresář se přímo objeví v cílovém prostoru
  • … pokud uvedený znak na konci nepoužijete, pracuje se pouze s obsahem adresáře (složky), tj. v cílovém prostoru se objeví pouze objekty obsažené v adresáři, nikoliv adresář samotný.

Kontrola integrity souborů

Pro kontrolu integrity souborů můžete využít aplikaci hasher, která je popsána v následujícím návodu.

Odkazy na zdroje o rsync

Stránka projektu rsync: http://rsync.samba.org/
Stránka projektu Grsync: http://www.opbyte.it/grsync/
Stránka projektu Grsync pro Windows: http://grsync-win.sourceforge.net/
Stránka projektu Grsync pro MacOS: http://grsync-mac.tuxfamily.org/?lang=en
Článek o rsync: http://www.root.cz/clanky/pokrocile-zalohovani-s-rsync/

NAS Synology

Datové úložiště NAS Synology komunikuje standardně přes rsyncd, který z bezpečnostních důvodů nepovolujeme. Přes rsync je nicméně možné provádět zálohování na datová úložiště CESNET z NAS Synology. K tomu je však třeba využít CLI, v GUI toto nelze provést. Níže je pro ukázku dostupný jeden z možných přístupů využívající standardní SSH a rsync, které jsou součástí skriptu volaného cronem.

   
#!/bin/ash

LOG_FILE=/var/log/backup_`date '+%F'`.log
LOG_FILE_ERR=/var/log/backup_errors_`date '+%F'`.log

echo "`date '+%b %d %T'` ==== Start of transmission ====" >> $LOG_FILE

rsync -a --exclude="[#]recycle/" /volume1/backup service_account@ssh.duX.cesnet.cz:~/VO_nazev-tape_tape/ 1>> $LOG_FILE 2>> $LOG_FILE_ERR

RETURN_CODE=`echo $?`
echo "`date '+%b %d %T'`==== End of transmission ====" >> $LOG_FILE

# Back up logs as well
rsync -a /var/log/backup* service_account@ssh.duX.cesnet.cz:~/VO_nazev-tape_tape/

Poslední úprava:: 03.05.2022 08:49