Migrácia medzi dvoma MacOS pomocou `rsync` | robonovotny
source link: https://novotnyr.github.io/scrolls/rsync-medzi-macos/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Migrácia medzi dvoma MacOS pomocou `rsync`
Migrácia medzi dvoma MacOS pomocou rsync
2021/01/01
Migrácia na nový MacBook Pro je malina. Naozaj sa nestratia žiadne dáta?
Štandardný postup je jednoduchý
- Oba stroje sa pripoja k rovnakej WiFi.
- Na každom stroji sa pustí Migration Assistant.
- Po pár hodinách je všetko magicky zmigrované.
Akurát pri mojej migrácii Macbook Pro zahlásil:
Niektoré súbory sa nepodarilo zmigrovať.
Ktoré? Všetky? Niektoré náhodné? Nik nevie.
Nový stroj jede… Jenom neseje.
Nový stroj zdanlivo išiel bez problémov - až zázračne. A to sa migrovala High Sierra na Big Sur! Všetky nastavenia sa zmigrovali úplne magicky - WiFi, aplikácie, používateľské kontá… až do momentu, kým iTerm2 nezahlásil, že nevie nájsť symlinky na dotfiles.
Vysvitlo, že adresár s projektami sa zmigroval len z jednej pätiny, čo je trochu viac ako „niektoré súbory“. Stovky binárok .class
a node_modules
asi spôsobili migračnému asistentovi bolehlav a rovno to vzdal s tým, že “niektoré súbory…”
Biedne pokusy
Pokusy s Forkliftom a podobne rovno zlyhali – opäť tisícky súborov boli nad sily.
RSync!
Nástroj rsync
je starý dobrý unixoidný systém na synchronizáciu medzi dvoma adresármi s rozumným protokolom.
Dokonca je k dispozícii aj natívne na MacOS, ale v prastarej verzii. Silne odporúčam doinštalovať aktuálnu verziu cez homebrew
brew install rsync
V tomto prípade využijeme optimalizáciu s rsync
démonom, teda v duchu klient-server architektúry.
Na strane „servera“ – pôvodného stroja
Na strane pôvodného servera vytvorme konfigurák pre démona rsyncu
:
vim /tmp/rsyncd.conf
Obsah:
list = yes
read only = yes
use chroot = false
[projects]
path = /Users/novotnyr/projects
exclude = /Users/novotnyr/Library/Caches
Dôležité nastavenia:
- vypneme
chroot
- klientovi sa to nepáči. - nastavíme režim len na čítanie
Sekcie sa mapujú na adresáre. Definujeme adresár projects
, kde uvedieme vypublikovaný adresár a vynecháme zbytočné adresáre, ktoré nechceme synchronizovať.
Démona spustíme:
rsync --daemon --config=/tmp/rsyncd.conf
Na strane klienta - nového stroja
Na strane klienta spustíme:
rsync -avc rsync://192.168.1.240/novotnyr/ /Users/novotnyr
Prepínače:
-a
- zapne rekurzívnu sychronizáciu a uchová atribúty súborov-v
- zapne ukecaný verbose výstup-c
- porovná rovnaké súbory na základe kontrolného súčtu namiesto času
Dá sa skúsiť aj beh „nasucho“ - stačí zapnúť prepínač -n
.
Pri prvej ceste je dôležitá lomka na konci (novotnyr/
), pretože v opačnom prípade sa nakopíruje adresár do klientovho /Users/novotnyr
.
Synchronizácia beží značne rýchlo - rsync
je totiž naozaj dobre vymyslený protokol
Porovnanie obsahu
Voliteľne môžeme aj porovnať obsahy:
rsync -avun rsync://192.168.1.240/novotnyr/ /Users/novotnyr
Prepínač -u
preskočí súbory, ktoré sú novšie v cieli – v tomto prípade na novšom stroji,
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK