Зберігання конфігураційних файлів синхронізовано на кількох ПК


15

У мене є кілька різних машин Linux та безліч конфігураційних файлів (і папок) на кожному.

Наприклад:

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

Чи є простий і елегантний метод зберегти ці файли синхронізованими між моїми машинами (у одного немає доступу до Інтернету) ?

Також для деяких файлів знадобиться більш вдосконалений процес синхронізації, оскільки їм доведеться трохи відрізнятися ... наприклад:

Клавіатура мого робочого столу має ряд гарячих клавіш, де мого ноутбука майже немає. Я використовую XF86Mailдля відкриття громовідводу на робочому столі, але Meta+ Mна своєму ноутбуці.

Мій домашній робочий стіл і робочий стіл більше орієнтовані на "багато користувачів", де мій ноутбук призначений саме для мене. Тому на своєму ноутбуці я, як правило, зберігаю файл "rc.xml" для openbox у, /etc/xdg/openbox/rc.xmlале на робочих столах~/.config/openbox/rc.xml

Відповіді:


10

Тримайте файли під контролем версій. Це має багато переваг, включаючи полегшення синхронізації файлів (фіксація на одній машині, оновлення на інших) та збереження історії змін (так що ви можете легко дізнатися, що порушило програму, яка працювала минулого місяця).

Я використовую CVS і синхронізую сховища з Unison або sneakernet, але це тому, що я робив це ще з часів, перш ніж широко доступний контроль розподілених версій. Усі, хто починає зараз, повинні використовувати належний розподілений інструмент контролю версій , такий як базар, darcs, git, mercurial, ...

Управління файлами, які мають відрізнятися між машинами, - це завжди біль. Якщо мова конфігурації дозволяє умовні умови, використовуйте їх. В іншому випадку, якщо є механізм включення, використовуйте його, щоб розділити файл конфігурації на машинозалежну частину та спільну частину. Зберігайте всі залежні від машини частини в окремому каталозі (щось подібне ~/.local/NAME/), на яке завжди посилається символічне посилання ( ~/.here-> local/NAMEна кожній машині). У мене є декілька файлів, які генеруються скриптом у спільній частині з параметрів, що зберігаються в певній частині машини; це виключає зміну цих файлів опосередковано через інтерфейс конфігурації GUI. Не уникайте налаштування речей /etc, важче синхронізувати машини.


Я використовую gitдля цієї мети. у мого репортажу у ~/.etcмене також є, ~/.usrі ~/.varя хочу, щоб ці каталоги були стандартними, щоб KDE перестала кидати всі файли tmp / var / config / etc під .kde. так важко знати, де я хочу в своєму домашньому довіднику.
ксенотерацид

5

Я погоджуюся з відповіддю щодо контролю версій , але ще один метод, з яким я експериментував останнім часом, - Dropbox . По суті, це система управління версіями, яка автоматично синхронізується між усіма вашими машинами, тому, якщо ви редагуєте файл на одному комп’ютері, ви побачите зміни, відображені на інших ваших комп’ютерах за пару секунд, не потребуючи прихильності до попереднього та оновлення на останнє.

Їх безкоштовний базовий план становить 2 Гб, тому я використовую його для версії своїх конфігураційних файлів та журналів чату


Основна перевага, яку я бачу тут, полягає в тому, що налаштувати його набагато простіше.
Ашеш Кумар Сінгх

3

Puppet та Cfengine - це два хороших інструменти для синхронізації файлів (та багато іншого ..)


Також є шеф-кухар, але ці інструменти справді керують великою кількістю машин, ймовірно, перевитрати для 2 або 3 систем
xenoterracide

1

Сьогодні можна отримати найкращі відповіді першої (dvcs) та другої (dropbox) з sparkleshare , яка забезпечує користувачеві схожий спосіб роботи з сховищем на основі git за кадром.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.