Synchronizowanie plików konfiguracyjnych na wielu komputerach


15

Mam kilka różnych maszyn linuxowych i wiele plików konfiguracyjnych (i folderów) na każdym z nich.

Na przykład:

~/.ssh/config
~/.config/openbox/rc.xml
~/.config/openbox/autostart.sh
~/.scripts/ ( folder )
~/.bashrc
...etc

Czy istnieje prosta i elegancka metoda synchronizacji tych plików między moimi komputerami (jeden nie ma dostępu do Internetu) ?

Ponadto niektóre pliki będą wymagały bardziej zaawansowanego procesu synchronizacji, ponieważ będą musiały się nieco różnić ... na przykład:

Moja klawiatura stacjonarna ma szereg skrótów klawiszowych, w których mój laptop prawie nie ma. Używam, XF86Mailaby otworzyć Thunderbirda na pulpicie, ale Meta+ Mna moim laptopie.

Zarówno My Home Desktop, jak i Work Desktop są bardziej „zorientowane na wielu użytkowników”, a mój laptop jest właśnie dla mnie. Tak więc na moim laptopie staram się przechowywać plik „rc.xml” dla Openbox w, /etc/xdg/openbox/rc.xmlale na komputerach stacjonarnych w~/.config/openbox/rc.xml

Odpowiedzi:


10

Trzymaj pliki pod kontrolą wersji. Ma to wiele zalet, w tym ułatwienie synchronizacji plików (zatwierdzanie na jednym komputerze, aktualizacja na innych) i prowadzenie historii zmian (dzięki czemu można łatwo dowiedzieć się, co spowodowało awarię programu, który działał w zeszłym miesiącu).

Używam CVS i synchronizuję repozytoria z Unison lub sneakernet, ale dzieje się tak dlatego, że robiłem to od czasu przed szeroko dostępną rozproszoną kontrolą wersji. Każdy, kto zaczyna teraz, powinien użyć odpowiedniego rozproszonego narzędzia do kontroli wersji , takiego jak bazar, darcs, git, mercurial, ...

Zarządzanie plikami, które muszą się różnić między komputerami, zawsze jest trochę uciążliwe. Jeśli język konfiguracji dopuszcza warunki warunkowe, użyj ich. W przeciwnym razie, jeśli istnieje mechanizm dołączania, użyj go, aby podzielić plik konfiguracyjny na część zależną od maszyny i część współdzieloną. Przechowuj wszystkie części zależne od maszyny w oddzielnym katalogu (coś podobnego ~/.local/NAME/), do którego zawsze odwołuje się symboliczne łącze ( ~/.here-> local/NAMEna każdej maszynie). Mam kilka plików, które są generowane przez skrypt we współdzielonej części z parametrów przechowywanych w części specyficznej dla maszyny; wyklucza to modyfikowanie tych plików pośrednio przez interfejs konfiguracyjny GUI. Unikaj konfiguracji /etc, trudniej synchronizować między komputerami.


Używam gitdo tego celu. moje repo dla ~/.etcmam również ~/.usri ~/.varchciałbym, aby te katalogi były standardowe, aby KDE przestało wyświetlać wszystkie pliki tmp / var / config / etc pod .kde. tak trudno wiedzieć, gdzie chcę w moim katalogu domowym.
ksenoterrakid,

5

Zgadzam się z odpowiedzią dotyczącą kontroli wersji , ale inną metodą, z którą ostatnio eksperymentowałem, jest Dropbox . Zasadniczo jest to system kontroli wersji, który automatycznie synchronizuje się między wszystkimi twoimi komputerami, więc jeśli edytujesz plik na jednym komputerze, zobaczysz zmiany odzwierciedlone na innych komputerach w ciągu kilku sekund, bez konieczności zatwierdzania pierwszego i aktualizacji na końcowy.

Ich bezpłatny podstawowy plan to 2 GB, więc używam go do wersji moich plików konfiguracyjnych i dzienników czatu


Główną korzyścią, którą tu widzę, jest to, że konfiguracja jest znacznie łatwiejsza.
Ashesh Kumar Singh


1

Dzisiaj można uzyskać najlepszą odpowiedź na pierwsze (dvcs) i drugie (dropbox) za pomocą sparkleshare , który zapewnia wrażenia podobne do dropboxa z pamięcią opartą na git za kulisami.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.