Журнал LinuxFormat - перейти на главную

LXF102:Миграция из Windows

Материал из Linuxformat
Перейти к: навигация, поиск
Миграция из Windows в Linux Синхронизация систем

Содержание

Unison: запустим сервер

ЧАСТЬ 2. Джо Касселз знает несколько ловких приемов синхронизации данных между Windows и Linux, которые облегчат переход от одной системы к другой.

Если у вас больше одного компьютера, рано или поздно возникает проблема синхронизации данных. При работе с одними и теми же файлами на разных компьютерах важно, чтобы изменения сохранялись, а у вас всегда была бы одна и та же версия файла, независимо от того, где вы находитесь. Если на одном из компьютеров установлена Windows, а на другом – Linux, эта задача немного усложняется. Однако если вы знаете, что делать, это не станет головной болью.

В процессе миграции в Linux многим нужно иметь возможность работать в Windows; кроме того, иногда просто полезно иметь несколько разных систем. Самый простой способ сделать это – настроить конфигурацию с двойной загрузкой (в большинстве дистрибутивов она просто выбирается при установке). Если в дистрибутиве есть поддержка чтения с разделов NTFS или FAT32, то к файлам Windows должен быть доступ из Linux. Обратное неверно, но файлы можно сохранить на Windows-совместимый раздел прямо из Linux, и тогда они будут доступны из обеих систем. Поддержка записи в NTFS в стабильной версии появилась лишь недавно. Для нее вам потребуется установить NTFS-3G, загрузить который можно со страницы http://www.ntfs-3g.org.

Конфигурация с двойной загрузкой на самом деле не включает синхронизации данных, ведь вы просто работаете с одними и теми же файлами, какую бы ОС ни использовали. Она не поможет и в том случае, когда нужно запустить обе ОС одновременно на разных компьютерах: к примеру, есть обычный компьютер с Windows и ноутбук с Linux, или наоборот. Поскольку между компьютерами нет постоянного сетевого соединения, позволяющего получить доступ к общим файлам, нам потребуется некая система, способная работать с копиями файлов и обновлять их, когда такое соединение появля- ется. Пользователям Windows, возможно, знаком Портфель, с помощью которого можно выгрузить нужные каталоги на ноутбук или сменный диск и работать с ними в другом месте, а позже – обновить. Но число файлов, с которыми он работает, ограничено. Когда потребуется обновить большое количество файлов, могут возникнуть проблемы, и вам не удастся воспользоваться этими файлами в других ОС.

Ручная синхронизация

Если у вас хорошее широкополосное сетевое соединение (например, домашняя сеть), а файлов, подлежащих обновлению, немного, самым простым способом может быть простое копирование новых файлов поверх старых. Пока вы не забываете делать это по окончании работы и есть доступ к диску другого компьютера на чтение и запись, все может работать отлично. Просто откройте окошко с файлами компьютера с Windows из Linux и переместите туда новые файлы, выбрав «заменить», когда система об этом спросит. Недостаток этого подхода – нужно помнить, где находятся самые последние версии файлов, а если файлы изменились на обоих компьютерах, по ошибке легко испортить правильную версию и потерять данные. Поэтому я бы советовал вам использовать этот подход, только когда файлов немного и имеется отдельная локальная копия данных.


Очевидно, нужна структурированная система, которая проверит состояние каждого файла в синхронизируемых каталогах и покажет, какие файлы изменились. Есть несколько кроссплатформенных решений такого рода. Пожалуй, самое простое из них – Unison. Это графическое приложение, которое работает и в Linux, и в Windows. Когда вы правильно его настроите, работать с ним будет очень легко. Unison позволяет синхронизировать файлы в обоих направлениях и может и заменять файлы, и объединять их, если изменения есть в обеих копиях.

Установка Unison

Загрузить Unison можно со страницы http://www.cis.upenn.edu/~bcpierce/unison/download.html. Вы увидите, что доступны как версия под Windows, так и под Linux. Здесь же можно найти исполняемый файл под Windows. Если в вашем дистрибутиве используются пакеты, то Unison можно установить из репозитория. Например, в Ubuntu выберите Приложения > Добавить/Удалить [Applications > Add/Remove] и затем Показать все открытые приложения с открытым кодом [Show all open source applications]. В строке поиска введите Unison, затем установите его. Если нужен RPM-пакет, загрузить его можно со страницы http://rpmforge.net/user/packages/unison/, а пакеты для Debian находятся на странице http://packages.debian.org/unison.

Важно использовать одну и ту же версию Unison в обеих системах. Если в Linux Unison устанавливался из репозитория, то установленная версия может быть более старой по сравнению с текущей. Чтобы проверить, какая версия используется, откройте менеджер пакетов и выберите Поиск [Search]. Введите Unison в строке поиска и нажмите на кнопку Поиск [Search]. Вы увидите все доступные версии, включая установленную. Запомните ее номер. Эту же версию программы будет нужно установить в Windows. Если вы загружали пакет, то имя файла должно включать номер версии Unison. Зайдите на страницу http://www.cis.upenn.edu/~bcpierce/unison/download.html, и если установленная версия меньше 2.24, то найдите исполняемый файл нужной версии, щелкнув по ссылке «Older Windows binaries».


Есть две различных версии Unison – первая работает только в командной строке, у второй есть графический интерфейс. Обе версии нужны: понятно, что если вы привыкли к Windows, то предпочтете графическую версию, но текстовая версия тоже полезна, например, при синхронизации по сети.

Локальные каталоги

Unison можно использовать для синхронизации локальных каталогов. Это неплохой вариант, если данные хранятся на внешнем USB-диске, подключаемом локально. Чтобы сделать это, запустите графическую версию Unison. Если раньше вы им не пользовались, идите прямо в настройки профиля по умолчанию. Укажите первый каталог из тех, которые нужно синхронизировать. Для этого введите полный путь или просто найдите каталог с помощью кнопки Browse. Нажмите OK. Теперь выберите опцию Local и укажите второй каталог, затем снова нажмите OK. Если программа запущена в первый раз, то появится предупреждение об отсутствии архивных файлов. При первом запуске это нормально, так что просто нажмите OK. Unison просканирует оба каталога, отобразит файлы, которые имеют отличия, и порекомендует действия, которые нужно произвести для их синхронизации. Действия могут включать копирование файла (файлов) из одного каталога в другой, удаление или пропуск файлов. Любое из этих действий можно изменить, выбрав соответствующую пару файлов и указав направление перезаписи (слева направо или справа налево, слева – первый каталог). Можно пропустить пару файлов или объединить (слить) различия в них. Определив все действия, нажмите Go для их выполнения. Теперь можно выйти из программы.

Чтобы поднабраться опыта, полезно попробовать кое-что синхронизировать. Выберите каталог, в котором нет важных файлов, и создайте новый, с которым будете его синхронизировать. Выполните описанные выше действия, указав два этих каталога, и в результате в новом каталоге должны появиться копии всех файлов из исходного каталога.


Версия для командной строки имеет ту же логику. Откройте окно терминала и введите команду

 unison folder1 folder2

Если папки folder1 и folder2 находятся в домашнем каталоге, полный путь указывать не нужно. При первом запуске программы появится текстовая версия предупреждения о файлах архива; нажмите Enter, чтобы продолжить работу. Сканируя каталоги, Unison отобразит каждый файл или каталог, где есть изменения, вместе с действием по умолчанию. Чтобы применить действие по умолчанию, нажмите Enter. Если действие нужно изменить, нажмите > для замены файла слева направо или < для замены справа налево. Для пропуска файла нажмите /. Каждый раз будет запрошено подтверждение действия. Нажмите Y для подтверждения или N, чтобы вернуться назад.

Профили

Если вы запускали графическую версию Unison до текстовой, она может попытаться использовать профиль по умолчанию, составленный при последнем запуске программы. В этом случае может появиться сообщение об ошибке, говорящее о том, что задано слишком много корневых каталогов. Ошибка возникает потому, что графическая версия программы создает файл профиля, где указано, какие каталоги синхронизировать. Типичный файл настроек выглядит так:

# Unison preferences file
root = /home/joe/folder1
root = /home/joe/folder2

Он хранится под именем default.prf в папке .unison внутри домашнего каталога. Чтобы увидеть этот файл, откройте домашний каталог и выберите Вид > Отображать скрытые файлы [View > Show Hidden Files] для каталога .unison. Остальные настройки тоже могут быть в этом каталоге – в файле profilename.prf. Для запуска Unison с определенным профилем воспользуйтесь командой

unison profilename

Если вы не хотите, чтобы Unison запускался с терминала с профилем по умолчанию, откройте каталог .unison и дайте файлу default.prf какое-нибудь другое имя. Каталоги потом можно указать из командной строки, при этом в графической версии программы все еще можно будет выбирать профили.

Версия для Windows

Версия Unison для командной строки работает в Windows практически так же, как и в Linux. Исполняемый файл нужно извлечь в рабочий каталог, хотя бы и c:\unison. Имя EXE-файла может включать номер версии Unisonunison-2.13.16-wintext.exe. Переименуйте файл как unison.exe, чтобы было проще запускать его с командной строки. Выберите Пуск > Выполнить [Start > Run], введите cmd в открывшемся окне в Windows XP или в окне поиска в меню запуска Vista, и нажмите Enter. Смените каталог на рабочий каталог Unison.

 cd \unison

Теперь можно пользоваться теми же командами, что и в Linux, например:

 unison c:\folder1 c:\folder2

После этого программа работает точно так же, как и в Linux. Чтобы воспользоваться графической версией в Windows, потребуется установить GTK+ 2. Загрузить ее можно с сайта проекта GIMP для Windows на странице http://tinyurl.com/22dkyv. Распакуйте файл и установите GTK. Теперь можно скачать и распаковать графическую версию Unison для Windows; она называется наподобие unison-2.13.16-win-gtk2.exe. Это автономный исполняемый файл, и его можно запускать из каталога, в который он был распакован. Синхронизация локальных файлов в Windows ничем не отличается от таковой в Linux.

Использование локальных каталогов удобно для знакомства с unison и в случае хранения данных на съемном диске, но подлинно родная стихия программы – синхронизация данных по сети. Ее можно использовать поверх SSH-соединения, но для разумно защищенной локальной сети это, пожалуй, перебор. Развернуть SSH-сервер в Windows тоже непросто, поэтому мне кажется, что лучше всего нам подойдет соединение через сокеты. Это соединение достаточно просто настроить, хотя оно и небезопасно – впрочем, если ваша сеть достаточно защищена и упрятана за брандмауэр NAT, то беспокоиться не о чем. Просто не пользуйтесь им через интернет.


Для синхронизации с помощью сокетов на одном из компьютеров нужно запустить сервер Unison, на другом – клиент. Если на одном из компьютеров установлена текстовая версия программы, ее можно использовать как сервер, а графическую версию на другом компьютере – как клиент. Сервер можно запускать и в Windows, и в Linux.

Сервер в Windows

Для начала нужно запустить Unison с командной строки. Предполагая, что файл уже распакован в каталог c:\unison, откроем окно терминала и введем команды:

cd \unison
unison -socket 2222

В окне появится сообщение “server started”. Если вы закроете это окно сейчас, то остановите сервер. В данном примере вместо 2222 можно ввести любое большее число: нужно просто указать, на каком порте будет работать программа. Пусть сервер работает, а вы перейдите на компьютер с Linux и запустите там графический клиент. При необходимости создайте новый профиль. Укажите локальный каталог и нажмите OK. Затем выберите Соединение через сокет [Socket Connection] и укажите имя компьютера Windows и порт, на котором работает сервер – в данном случае 2222. Нажмите OK, и программа запустится так же, как если бы вы синхронизировали локальные каталоги.

Указать каталог для синхронизации на компьютере Windows нельзя. В нашем примере Unison предполагает, что этот каталог, в котором запущен сервер, c:\unison. Однако можно запустить сервер и в другом каталоге. Также можно создать ярлык для сервера, и не придется запускать его с командной строки.

Создаем ярлык

Кликните правой кнопкой мыши в любом месте рабочего стола и выберите Новый > Ярлык [New > Shortcut]. В появившемся окне введите:

c:\unison\unison.exe -socket 2222.

Нажмите Далее [Next] и дайте ярлыку имя. Затем кликните правой кнопкой на созданном ярлыке и выберите Свойства [Properties]. На вкладке Ярлык [Shortcut] вы увидите то, что указали раньше. В поле Запускать в [Start in] введите путь к каталогу, с которым хотите синхронизировать данные, и нажмите OK. Теперь можно запустить сервер, щелкнув по этому ярлыку. После этого запустите Unison в Linux и синхронизируйте каталоги, как было описано ранее.

Сервер в Linux

Если вы хотите запустить сервер Unison в Linux, откройте терминал и введите команду

unison -socket 2222

которая должна возвратить тот же ответ “server started”. Теперь запустите графическую программу в Windows. Укажите каталог, который хотите синхронизировать, имя или IP-адрес компьютера с Linux и номер используемого порта. В поле Каталог [Directory] задайте подкаталог вашего домашнего каталога, который вы собираетесь использовать. Если не указывать подкаталог, синхронизируется все содержимое домашнего каталога. Нажмите OK и продолжите точно так же, как при синхронизации локальных каталогов.

После того, как профиль по умолчанию установлен и вы знаете, как запустить сервер, вся синхронизация становится делом нескольких щелчков, и вы вольны переключаться между компьютерами, как вам угодно. LXF

Скорая помощь

Помните, что после запуска сервера содержимое вашей файловой системы становится доступным любому, кто подключен к вашей сети. Убедитесь, что остановили сервер после окончания синхронизации, и никогда не пользуйтесь им без NAT-брандмауэра.

Не используйте каталог синхронизации вместо резервной копии. Если вы по ошибке удалите файл и затем синхронизируете каталоги, могут быть удалены обе копии. Отдельная резервная копия гарантирует, что вы не слишком много потеряете, совершив эту ошибку.

Удаленный доступ

Чтобы синхронизировать данные по сети с помощью Unison, у вас должен быть доступ к обоим компьютерам для запуска сервера и клиента. Это не всегда практично, но можно обойти эту необходимость с помощью VNC. Самый простой вариант – запустить сервер VNC на компьютере Windows и соединиться с ним из Linux. На компьютере Windows откройте страницу http://www.uvnc.com/download/ и загрузите UltraVNC 1.0.4 RC4 beta для Vista, в противном случае можете воспользоваться версией 1.0.2. Для лучшей производительности загрузите и дополнение для видеодрайвера. Установите программу, зарегистрируйте ее и запустите UltraVNC. Потребуется установить пароль. Некоторые дистрибутивы Linux уже включают в поставку VNC Viewer. Запустить его можно, набрав vncviewer в окне терминала. Укажите имя компьютера Windows или его IP-адрес и заданный ранее пароль. Теперь можно управлять компьютером Windows из Linux и удаленно запускать на нем сервер Unison.

Персональные инструменты
купить
подписаться
Яндекс.Метрика