OT - jak na synchronizaci adresaru?

Miroslav Lachman 000.fbsd at quip.cz
Tue Nov 3 21:41:40 CET 2009



Radomír Tománek wrote:
> Ahoj,
> Omlouvam se za dotaz, který se primo netyka FreeBSD, ale snad někdo bude
> vědět...:o))
> Potřeboval bych synchronizovat vzdálený adresář směrem k mému serveru. Mezi
> klientem (zdrojem dat) a serverem (cílem) je openvpn tunel, takže bych do
> toho nemíchal ssh. Ideálně aby se synchronizovalo pravidelně samo (těch
> klientů bude víc, server jeden).
> Zkoušel jsem rsync, ale chce to po mě zadávat heslo roota stroje na který
> synchronizuji. Zkousěl jsem unison, ale ten chce taky vstupy z klávesnice.
> Ale nevylučuji, že to dělám špatně.

No to asi opravdu delas neco spatne.

Rsync sam o sobe zadne heslo nechce, tim spis, ze by chtel heslo roota.

Jen bych si ted rad ujasnil, ze jsem spravne pochopil, co chces udelat.

Klient (nejake PC) ma byt zdrojem dat, ktera se maji ukladat na server, 
jakozto centralni uloziste, kde budes mit pro kazdeho klienta samostatny 
adresar?
Pujde tedy o jednosmernou synchronizaci z PC na centralni uloziste.

Neco takoveho mam v provozu a dokonce i s tou OpenVPN.

Na kazdem PC, ktere ma byt zdrojem dat, je pusteny rsync jako daemon a 
to centralni uloziste si z neho cte data v intervalech nastavenych 
cronem na tom ulozisti. Tim je cela sprava a zodpovednost polozena na 
ten server a jedine, co "klient" (zdroj dat) musi mit, je spusteny rsync 
daemon s patricnym konfigurakem, ktery jen rika, jaka oblast dat se bude 
cist, ze je to jen pro cteni a volitelne jaky uzivatel + heslo se ma 
pouzit. Uzivatel a heslo ovsem neni zadny systemovy ucet, je to uzivatel 
vytvoreny pouze v konfiguraci rsync daemona, ktery bezi na zdroji dat. 
Login a heslo tohoto uzivatele je ulozeno napriklad v souboru 
rsync.secret, ktery neni world readable.
Stejny login a heslo pak musi pouzit server (uloziste - v roli rsync 
client), ktery se pripojuje na rsync daemona na zdroji dat. Opet se 
jedna o informace ulozene v souboru.

Cele to funguje zcela samo, periodicky a bez jakehokoliv uzivatelskeho 
vstupu z klavesnice.

Na strane klienta (zdroje dat) bude krome zakladni konfigurace pritomna 
i definice nejakeho "modulu", napriklad pro zalohovani /home

[home]
	path = /home
	comment = Users home dirs (tens of MB)
	list = no
	auth users = bkp_machine
	secrets file = /usr/local/etc/rsync.secret

Soubor rsync.secret pak obsahuje napriklad
bkp_machine:MyStrongPass

Na serveru (centralnim ulozisti) se bude spoustet patrne z nejakeho 
scriptu rsync client asi takto:

rsync -a -H --log-file=/var/log/rsync_client1_home.log --numeric-ids 
--password-file=/root/.rsync.client1.passwd 
rsync://bkp_machine@client1.domain.tld/home /storage/client1/home

Soubor /root/.rsync.client1.passwd obsahuje jenom heslo, bez loginu. 
Opet soubor neni world readable.

Rsync daemon na tech klientskych PC musi samozrejme bezet pod takovym 
uzivatelem, ktery ma prava pro cteni tech souboru, ktere chceme 
synchronizovat. Coz muze byt nejaky zvlastni uzivatel/skupina, nebo v 
pripade potreby i root - vhodnost a (ne)bezpecnost si musi kazdy zvazit sam.

Rsync ma pak oproti takovemu FTP prenosu vyhodu v tom, ze umi prenaset 
treba i jen cast souboru, ktera se zmenila.

Tohle je jen celkem zakladni priklad toho, jak rsync muze byt pouzit, 
ale variant je mnoho, vcetne pouziti ruznych exclude / include seznamu 
jak na strane serveru, tak na strane klienta. Zrovna tak se da pouzit i 
opacne, kdy jediny daemon pobezi na centralnim ulozisti a klienti 
(zdroje dat) se k nemu budou pripojovat a budou mu sve soubory "tlacit". 
Opet zavisi hodne na tom, ceho clovek presne chce dosahnout, co 
potrebuje zajistit. Ja zvolil prvni variantu protoze jsem nechtel zadnou 
kontrolu / odpovednost nechavat na klientech a zaroven proto, ze na tom 
ulozisti pouzivam rsync snapshoty pomoci --link-dest=DIR

Na internetu se da jiste najit spousta dalsi prikladu pouziti.

Mirek



More information about the Users-l mailing list