Недавно столкнулся со следующей задачей: дома три компьютера и работать случается на каждом из них. При этом захотелось раз и навсегда забыть о необходимости ручной синхронизации файлов между компьютерами. Компьютер на работе также захотелось включить в процесс синхронизации. А заодно решить, как сделать синхронизацию коммуникатора независимой от конкретного компьютера.
Полученное решение описано в виде рецептов.
Начну с самого простого. Для синхронизации закладок в Firefox я использую плагин Xmarks (бывший Foxmarks). Пользуюсь им давно и всем доволен. Ставится отсюда.
Немного подумав, я понял, что у меня есть потребность только в синхронизации календаря. Остальную информацию достаточно только бэкапить. Поэтому решение получилось очень простым — я начал использовать Google Calendar, на каждый компьютер установил Google Calendar Sync, а на коммуникатор поставил OggSync.
Google Calendar Sync скачивается отсюда.
OggSync скачивается отсюда.
А теперь о самом интересном. Итак, мне было необходимо, чтобы на всех моих компьютерах был единый набор рабочих файлов, а синхронизация происходила надежно и с минимальным моим участием. Также требуется, чтобы файлы с рабочего компьютера попадали на домашние компьютеры, но не наоборот — информация личного характера должна оставаться дома.
Вариант с синхронизацией по сети я быстро отбросил — пропускная способность маловата, да и вообще не хочется зависеть от того, подключен ли ноутбук к домашней локалке. Таким образом, остался единственный вариант — использовать внешний накопитель.
Накопитель должен отвечать следующим требованиям: полностью использовать пропускную способность интерфейса USB 2.0; иметь приличный объем «с запасом»; быть компактным и ударопрочным; быть недорогим.
В результате я выбрал Transcend StoreJet 25 mobile 250gb.
Для шифрования данных на накопителе я применил утилиту TrueCrypt. Настраивается все аналогично с рекомендациями из недавно пробегавшей статьи.
Есть нюанс в том, что сейчас мы собираемся зашифровать не флешку, а жесткий диск гораздо большего объема. Сделать это с помощью TrueCrypt можно следующими способами:
В результате я выбрал первый вариант, хотя третий тоже выглядит интересным.
На данном этапе надо запастись терпением — форматирование файла данных TrueCrypt займет более двух часов.
Как это обычно и бывает, доставшаяся мне вместе с накопителем программа синхронизации была деинсталлирована вскоре после первого запуска. Неумение обрабатывать факт удаления файла — не единственный ее недостаток.
При выборе программы синхронизации я остановился на GoodSync. Понравилась мне эта программа тем, что:
GoodSync скачивается отсюда.
Тут, конечно, возможно разнообразие вариантов. Я сделал следующим образом.
На каждом домашнем компьютере у меня появилась папка «d:\roaming_home», содержащая в себе папки «apps», «books», «home», «work» и другие. На рабочем компьютере, соответственно, появилась папка «d:\roaming_work».
GoodSync был настроен таким образом, чтобы синхронизировать с накопителем папки «roaming_home» и «roaming_work» при запуске дома и синхронизировать «roaming_work» при запуске на работе.
Все нужные программы, в первую очередь способные работать без инсталляции и позволяющие задавать расположение настроек, были переустановлены в папку «roaming_home\apps» (например, firefox и, в отдельной папке, профиль для него). Дистрибутивы некоторых программ, не способных работать без инсталляции, были помещены на накопитель, а сами программы — переустановлены на каждом компьютере.
GoodSync запускается с накопителя и не установлен ни на одном из компьютеров. Также дело обстоит и с TrueCrypt, только в отличие от GoodSync он находится на незашифрованной части накопителя.
Один из моих домашних компьютеров — планшетный нетбук, на котором я не собираюсь заниматься программированием. Кроме этого, на нем нет диска «d:». Для него я создал отдельный конфиг GoodSync, который ссылается на «c:\roaming_home», и добавил в исключения папку «roaming_home\apps\dev». Чтобы нормально работали остальные программы из «apps», диск «d:» «создается» добавленным в автозапуск батником вида:
Остается написать несколько батников. Во-первых это autostart.bat и unmount.bat, которые будут монтировать и размонтировать диск TrueCrypt. Кроме монтирования диска TrueCrypt, я добавил в autostart.bat открытие окна проводника на корневом каталоге накопителя — лежащие в этом каталоге батники будут играть роль меню.
Заходим в Computer Management->Disk Management и присваиваем накопителю букву диска «v:». В параметрах запуска TrueCrypt присваиваем зашифрованному диску букву «w:».
Исправляем autorun.inf, который сгенерировал TrueCrypt. Поскольку на многих компьютерах Autorun выключен, пишем еще два батника mount.bat и dismount.bat вида:
Эти батники кладем на рабочий стол и куда-нибудь в незашифрованную часть накопителя, чтобы были под рукой.
Пишем батники для запуска GoodSync. У меня их четыре штуки: «синхронизация дома», «синхронизация дома с нетбуком», «синхронизация на работе», «запуск GoodSync без автоматического старта синхронизации». Эти батники имеют следующий вид:
Настройки для GoodSync лежат в его же каталоге, а батник для его запуска выглядит примерно так:
Итак, сценарий работы выглядит следующим образом.
Сформулированную в начале статьи задачу считаю решенной полностью и очень доволен результатом. Нет больше необходимости все время помнить, на каком компьютере лежит нужный мне файл. И можно теперь в любой момент прервать работу на одном компьютере и спокойно продолжить ее на другом. В дополнение к мобильности, я получил бэкапирование своих данных сразу на несколько независимых носителей.
В качестве альтернативы можно попробовать работать прямо с переносного накопителя, тогда можно будет не ждать, пока пройдет синхронизация. Или опробовать «срединный» вариант, при котором синхронизируются только те данные, для которых важна скорость обращения. С другой стороны, я часто работаю, не подключая накопитель к компьютеру. GoodSync правильно выполняет многонаправленную синхронизацию, а его интерфейс позволяет достаточно удобно обрабатывать конфликтующие изменения.
Полученное решение описано в виде рецептов.
Синхронизируем закладки
Начну с самого простого. Для синхронизации закладок в Firefox я использую плагин Xmarks (бывший Foxmarks). Пользуюсь им давно и всем доволен. Ставится отсюда.
Синхронизируем коммуникатор
Немного подумав, я понял, что у меня есть потребность только в синхронизации календаря. Остальную информацию достаточно только бэкапить. Поэтому решение получилось очень простым — я начал использовать Google Calendar, на каждый компьютер установил Google Calendar Sync, а на коммуникатор поставил OggSync.
Google Calendar Sync скачивается отсюда.
OggSync скачивается отсюда.
Бонус | На домашних компьютерах я установил Google Calendar Sync не только под своим аккаунтом, но и под аккаунтом жены, и также настроил его на свой календарь. Теперь жена может смотреть мой календарь у себя в аутлуке и добавлять напоминалки для меня. Сразу стало проще синхронизировать наши планы. |
Синхронизируем информацию между компьютерами
А теперь о самом интересном. Итак, мне было необходимо, чтобы на всех моих компьютерах был единый набор рабочих файлов, а синхронизация происходила надежно и с минимальным моим участием. Также требуется, чтобы файлы с рабочего компьютера попадали на домашние компьютеры, но не наоборот — информация личного характера должна оставаться дома.
Вариант с синхронизацией по сети я быстро отбросил — пропускная способность маловата, да и вообще не хочется зависеть от того, подключен ли ноутбук к домашней локалке. Таким образом, остался единственный вариант — использовать внешний накопитель.
Выбираем накопитель
Накопитель должен отвечать следующим требованиям: полностью использовать пропускную способность интерфейса USB 2.0; иметь приличный объем «с запасом»; быть компактным и ударопрочным; быть недорогим.
В результате я выбрал Transcend StoreJet 25 mobile 250gb.
Шифруемся
Для шифрования данных на накопителе я применил утилиту TrueCrypt. Настраивается все аналогично с рекомендациями из недавно пробегавшей статьи.
Есть нюанс в том, что сейчас мы собираемся зашифровать не флешку, а жесткий диск гораздо большего объема. Сделать это с помощью TrueCrypt можно следующими способами:
- как и в случае с флешкой, создать один большой зашифрованный файл. Чтобы это сделать, придется сначала переформатировать накопитель в NTFS;
- создать зашифрованный раздел. Минус в том, что негде будет хранить сам TrueCrypt, придется установить его на каждый синхронизируемый компьютер;
- разбить накопитель на два раздела, на обычный раздел установить TrueCrypt, второй раздел сделать зашифрованным.
В результате я выбрал первый вариант, хотя третий тоже выглядит интересным.
На данном этапе надо запастись терпением — форматирование файла данных TrueCrypt займет более двух часов.
Выбираем программу для синхронизации
Как это обычно и бывает, доставшаяся мне вместе с накопителем программа синхронизации была деинсталлирована вскоре после первого запуска. Неумение обрабатывать факт удаления файла — не единственный ее недостаток.
При выборе программы синхронизации я остановился на GoodSync. Понравилась мне эта программа тем, что:
- корректно поддерживает многонаправленную синхронизацию;
- корректно обрабатывает удаление файлов;
- позволяет иметь несколько конфигов;
- умеет работать из командной строки;
- может работать без инсталляции;
- не была замечена в глюках.
GoodSync скачивается отсюда.
Бонус | Недавно я накосячил при установке плагинов под Eclipse. Запущенный в режиме восстановления из бэкапа GoodSync вернул папку с эклипсом в работоспособное состояние. |
Настраиваем структуру файлов
Тут, конечно, возможно разнообразие вариантов. Я сделал следующим образом.
На каждом домашнем компьютере у меня появилась папка «d:\roaming_home», содержащая в себе папки «apps», «books», «home», «work» и другие. На рабочем компьютере, соответственно, появилась папка «d:\roaming_work».
GoodSync был настроен таким образом, чтобы синхронизировать с накопителем папки «roaming_home» и «roaming_work» при запуске дома и синхронизировать «roaming_work» при запуске на работе.
Ставим софт
Все нужные программы, в первую очередь способные работать без инсталляции и позволяющие задавать расположение настроек, были переустановлены в папку «roaming_home\apps» (например, firefox и, в отдельной папке, профиль для него). Дистрибутивы некоторых программ, не способных работать без инсталляции, были помещены на накопитель, а сами программы — переустановлены на каждом компьютере.
GoodSync запускается с накопителя и не установлен ни на одном из компьютеров. Также дело обстоит и с TrueCrypt, только в отличие от GoodSync он находится на незашифрованной части накопителя.
Особый случай
Один из моих домашних компьютеров — планшетный нетбук, на котором я не собираюсь заниматься программированием. Кроме этого, на нем нет диска «d:». Для него я создал отдельный конфиг GoodSync, который ссылается на «c:\roaming_home», и добавил в исключения папку «roaming_home\apps\dev». Чтобы нормально работали остальные программы из «apps», диск «d:» «создается» добавленным в автозапуск батником вида:
subst d: c:\
Последние штрихи
Остается написать несколько батников. Во-первых это autostart.bat и unmount.bat, которые будут монтировать и размонтировать диск TrueCrypt. Кроме монтирования диска TrueCrypt, я добавил в autostart.bat открытие окна проводника на корневом каталоге накопителя — лежащие в этом каталоге батники будут играть роль меню.
Заходим в Computer Management->Disk Management и присваиваем накопителю букву диска «v:». В параметрах запуска TrueCrypt присваиваем зашифрованному диску букву «w:».
Исправляем autorun.inf, который сгенерировал TrueCrypt. Поскольку на многих компьютерах Autorun выключен, пишем еще два батника mount.bat и dismount.bat вида:
v:
cd v:\
call v:\autorun.bat
Эти батники кладем на рабочий стол и куда-нибудь в незашифрованную часть накопителя, чтобы были под рукой.
Пишем батники для запуска GoodSync. У меня их четыре штуки: «синхронизация дома», «синхронизация дома с нетбуком», «синхронизация на работе», «запуск GoodSync без автоматического старта синхронизации». Эти батники имеют следующий вид:
w:
cd W:\roaming-home\apps\tools\GoodSync
call goodsync.bat /miniwin sync TranscendSync-Work
Настройки для GoodSync лежат в его же каталоге, а батник для его запуска выглядит примерно так:
start GoodSync.exe /profile=data /lf=logs /check-new-ver=no /cleanup-logs=yes %*
Бонус | Благодаря установке большей части необходимых программ на накопитель, я теперь могу работать вообще на любом подходящем компьютере, не тратя время на перенос данных и настройку среды. Достаточно подключить диск и запустить синхронизацию. |
Подводим итог
Итак, сценарий работы выглядит следующим образом.
- Подключил накопитель к компьютеру.
- Вызвал mount.bat с рабочего стола (или дождался срабатывания Autorun).
- Ввел пароль TrueCrypt.
- Вызвал нужный батник для синхронизации (синхронизация занимает несколько минут).
- Проверил результаты работы GoodSync.
- Поработал. Закрыл все синхронизируемые программы.
- Вызвал нужный батник для синхронизации.
- Вызвал unmount.bat.
- Закрыл окно проводника с диском v:\.
- Безопасно отключил диск и отсоединил его от компьютера.
Сформулированную в начале статьи задачу считаю решенной полностью и очень доволен результатом. Нет больше необходимости все время помнить, на каком компьютере лежит нужный мне файл. И можно теперь в любой момент прервать работу на одном компьютере и спокойно продолжить ее на другом. В дополнение к мобильности, я получил бэкапирование своих данных сразу на несколько независимых носителей.
В качестве альтернативы можно попробовать работать прямо с переносного накопителя, тогда можно будет не ждать, пока пройдет синхронизация. Или опробовать «срединный» вариант, при котором синхронизируются только те данные, для которых важна скорость обращения. С другой стороны, я часто работаю, не подключая накопитель к компьютеру. GoodSync правильно выполняет многонаправленную синхронизацию, а его интерфейс позволяет достаточно удобно обрабатывать конфликтующие изменения.