Sinkronigi Retnodojn per Usync

Esperanto • English
Laste ĝisdatigita: la 16-an de marto 2022

Kion mi ne povas krei, mi ne komprenas.
—Richard P. FEYNMAN

thomas-jensen-ISG-rUel0Uw-unsplash

Enhavotabelo

Enkonduko

Lok-al-loka sinkronigo estas kutime bezonata, kiam du lokoj sendepende kreas dosierajn ĝisdatigojn. Ni supozu, ke la firmao MMM havas du oficejojn. En la unua oficejo, ili havas la librotenadan kaj loĝistikan fakojn. En la dua oficejo, ili havas la informadikan kaj homfaktoran fakojn. Ambaŭ havas komunan /pub-arbon, kiu havas atribuitajn subdosierujojn al ĉiu fako. Sen sinkronigo, kiam la unua oficejo bezonas la informon de la dua oficejo, ili permane bezonas tiri la ĝisdatigojn. Per sinkronigo, la unua oficejo povas aliri la dosierojn el la dua oficejo, kvazaŭ la informadika kaj homfaktora fakoj, estis en la unua oficejo. Usync helpas atingi tion. Ĝi estas kreita per Scsh. Ĝi uzas Unison kaj rsync por ambaŭ- kaj unudirekta sinkronigoj, respektive.

Instalo

Usync povas esti instali per Nixpkgs:

$ nix-env -i usync

Por certigi, ke usync fakte estis instalita, rulu:

$ which usync

Baza uzado

Por fari ambaŭdirektan sinkronigon de la dosierujo /pub/mis/dok, inter la aktuala retnodo al la retnodoj loko1 kaj loko2, konservante la dosierujan strukturon defore, rulu la jenan komandon. Notu, ke ne devas ekzisti spacetoj inter la retnodaj precizigoj, pro la IFS media variablo de la ŝelo:

$ usync /pub/mis/dok/ loko1,loko2

La komando faros ambaŭdirektan sinkronigon de la dosierujo dok/ troveblas ĉe /pub/mis, al loko1:/pub/mis/ kaj loko2:/pub/mis/.

Per la antaŭa ekzemplo, la ambaŭdirekta sinkronigo simple diras, ke se la arbo loko1:/pub/mis/dok/ enhavas novajn aŭ ĝisdatigatajn erojn kontraste al localhost:/pub/mis/dok/ kaj localhost:/pub/mis/ninam/ kiuj ankaŭ havas novajn aŭ ĝisdatigitajn erojn, tiam, ili intersanĝigas ĝisdatigojn.

Ideale, la rezulto estas ke localhost:/pub/mis/dok/, loko1:/pub/mis/ninam/, kaj loko2:/pub/mis/dok/ ĉiuj egalas.

Altnivela uzado

Estas ankaŭ eble fari sinkronigon de pluraj dosieroj kaj dosierujoj al mallokaj retnodoj. Por fari tiel, rulu:

$ usync /pub/mis/dok/ ~/file.txt ~rmm/*.txt loko1,loko2

La komando faros ambaŭdirektan sinkronigon de la dosierindikoj /pub/mis/dok/, ~/file.txt, kaj ~rmm/*.txt al la mallokaj retnodoj loko1 kaj loko2, laŭ la sama dosieruja struktura sistemo kiu estas priskribita supre.

Se oni volas fari unudirektan sinkronigon de la supraj, kiel rsync, rulu:

$ usync --one-way --prefer-local /pub/mis/dok/ \
~/file.txt ~rmm/draft.txt loko1,loko2

Por vidi pli da informo, rulu:

$ usync --help

Finrimarkoj

Kelkaj dosieroj kaj regulesprimoj estas enkonstruitaj kiel eksigoj. Eble ili senchavas aŭ ne. Se oni opinias, ke ili devas esti ŝanĝitaj, estu libere por sendi tirpeton. La fontoj haveblas [ĉi tie](https://github.com/ebzzry/usync).