Синхронизация папок, конфигураций, программ, локального сервера и базы данных на 2 компьютерах Debian

332
Iam Zesh

Я использую debian как на ноутбуке, так и внутри виртуальной машины на другом компьютере.

Я хочу иметь возможность синхронизировать эти две системы в обоих направлениях, чтобы я мог

  • сделать какую-нибудь работу, скажем, на виртуальной машине, затем перейти на ноутбук, синхронизироваться и работать дальше оттуда,
  • возвращайся на ВМ, синхронизируйся и работай дальше дальше ...

После некоторого поиска в Google, похоже, что мне нужен инструмент Unison, потому что, среди прочего, его функция двусторонней синхронизации.

Что мне сейчас интересно, так это что / что нет и как синхронизировать между двумя машинами.

Я понял, что в моем случае нужно учесть три основных момента (хотя я мог кое-что забыть):

  • синхронизировать большую часть (все?) содержимого домашней папки, потому что оттуда мне нужны файлы, с которыми я работаю, псевдонимы bash, параметры конфигурации большинства программ (которые я бы хотел, чтобы они были одинаковыми между двумя компьютерами) мои домашние запеченные скрипты и пр.
  • синхронизация содержимого локального сервера apache и баз данных mysql, которые я там запускаю, для локального тестирования некоторых веб-сайтов, которые я создаю (для возможности локального тестирования на каждой машине отдельно / независимо)
  • синхронизация установленных программ по этим системам.

Итак, во-первых, что касается домашней папки, я подумал, что простая синхронизация всей домашней папки будет хорошей идеей. Но если присмотреться к этому более внимательно, похоже, что некоторые скрытые файлы / каталоги на виртуальной машине отсутствуют, следовательно, необходимы на ноутбуке (например, .vboxclient-clipboard.pid, .vboxclient-display.pid ...) и наоборот. ,

Мне также было интересно узнать о некоторых скрытых файлах, которые кажутся специфичными для каждой машины (.cache, .dbus, .gconf)

Поэтому мне было интересно, существуют ли общие правила (исключая некоторые конкретные расширения файлов или известные файлы / папки), которые я мог бы применить, чтобы не копировать отдельные системные файлы и действительно придерживаться того, что мне нужно, и того, что является общим на 2 машины (мои данные и файлы конфигурации, такие как пользовательский список серверов для filezilla).

Затем, что касается синхронизации локального сервера и базы данных MySQL, я подумал, что

  • Я также могу синхронизировать папку / var / www / между машинами с Unison (хотя это не очень хорошая идея)
  • Мне нужно было бы написать скрипт для дампа, сравнения и при необходимости заменять базы данных mysql каждый раз (хотя звучит очень неэффективно)

Наконец, в отношении программ, похоже, мне нужно было бы устанавливать вручную те, которые были установлены на одной, а не на другой (но это не должно быть проблемой, так как мне просто нужно делать это при настройке компьютеров, и я редко устанавливаю новые программы после этого).

Вдобавок ко всему этому, я думаю о переустановке Debian на каждой из этих двух машин, поэтому мне также было интересно, если во время установки Debian будет иметь значение, если я выберу на каждой машине разные настройки, касающиеся:

  • шифрование диска: в основном я хотел бы зашифровать диск с помощью LVM на ноутбуке, но мне это не понадобится на виртуальной машине,
  • имя хоста: это не критично, так как я могу использовать одно и то же имя хоста на обеих машинах, но мне было интересно, можно ли использовать 2 разных имени (например, debianlaptop и debianvm)
  • пароли пользователей: я бы использовал одинаковые имена пользователей на обеих машинах, но было бы неплохо использовать разные пароли (также для root)
  • Выбор программного обеспечения: я определенно установил бы их на обеих машинах: «Среда рабочего стола Debian» (с xfce в качестве менеджера dektop, установленным в начале установки), «Веб-сервер», «Стандартные системные утилиты», но мне интересно, действительно ли это Нужно установить «Ноутбук» на ВМ и, если это повлияет на синхронизацию.

Для всего вышеперечисленного моей главной заботой является возможность сделать лучший выбор, чтобы

  • Я могу синхронизироваться между ними самым автоматическим способом, с меньшим количеством ручного вмешательства, насколько это возможно (в основном, просто запускаю unison на компьютере, на котором я начинаю работать, и в конце концов позабочусь об установке некоторых программ и синхронизации базы данных)
  • Я синхронизирую только то, что нужно, избегая файлов / папок / опций, которые специфичны для системы или могут перезаписать специфические настройки системы, что приведет к нежелательным последствиям ...
2

1 ответ на вопрос

0
Mike Pierce

Что касается синхронизации вашего домашнего каталога с Unison и исключения определенных системных каталогов, есть два варианта. Во-первых, чтобы подробно описать все, что вы хотите синхронизировать, и пропустите все системные каталоги:

# unison-profile.prf root = /home/user root = ssh://user@VM//home/user path = Documents path = .bashrc . . . 

Другим вариантом будет синхронизировать все, а затем подробно отобразить пути, которые вы хотите игнорировать:

# unison-profile.prf root = /home/user root = ssh://user@VM//home/user path = Name {.*,*} ignore = Path .cache ignore = Path .dbus . . . 

Обратите внимание, что нам нужно path = Name {.*,*}скорее просто path = Name *синхронизировать все файлы и каталоги с именами, которые начинаются с точки.