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_mach...@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
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem