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