Я ищу хороший инструмент для следующего рабочего процесса:

У меня есть каталог (~ 500 МБ) различных проектов. Код веб-сайта, приложения C, приложения django, небольшие виртуальные машины, изображения и т.д. Этот каталог в настоящее время хранится на ноутбуке, который я использую практически для всего, что связано с компьютером, и когда я иду на работу (помощник студента в университете), я обычно беру это Ноутбук со мной и установить его там.

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

  • каждый раз, когда я запускаю одну из машин, она должна тянуть последнюю версию
  • каждый раз, когда я останавливаю одну из машин, она выдвигает свою версию как последнюю

где "push" и "pull" - это процессы черного ящика для доступа к удаленному хранилищу данных.

В настоящее время я реализовал это с помощью lftp mirror --reverse --delete для веб-хостинга , но это ужасно медленно. Есть ли лучшие решения, о которых я просто не знаю?

ОБНОВЛЕНИЕ: Хотя это все еще слишком медленно, мне удалось значительно ускорить синхронизацию с помощью флага --parallel lftp.

вот мой призыв к процессу "толкания":

lftp -e '
  set ftp:sync-mode off
  open $HOST
  user $USER $PASS
  mirror --reverse --delete --verbose --parallel $SOURCE $TARGET
  bye'

2 ответа2

1

Rsync

Это похоже на вариант использования rsync. Домашняя страница: http://rsync.samba.org/

Со страницы руководства:

Описание

Rsync - это быстрый и необычайно универсальный инструмент для копирования файлов. Он может копировать локально, на / с другого хоста через любую удаленную оболочку или на / с удаленного демона rsync. Он предлагает большое количество параметров, которые управляют каждым аспектом его поведения и позволяют очень гибко задавать набор файлов для копирования. Он известен своим алгоритмом дельта-передачи, который уменьшает объем данных, передаваемых по сети, отправляя только различия между исходными файлами и существующими файлами в месте назначения. Rsync широко используется для резервного копирования и зеркалирования, а также как улучшенная команда копирования для повседневного использования.

Rsync находит файлы, которые необходимо передать, используя алгоритм "быстрой проверки" (по умолчанию), который ищет файлы, которые изменились в размере или в момент последнего изменения. Любые изменения в других сохраненных атрибутах (в соответствии с параметрами) вносятся в целевой файл непосредственно, когда быстрая проверка показывает, что данные файла не нуждаются в обновлении.

Некоторые из дополнительных функций rsync:

  • поддержка копирования ссылок, устройств, владельцев, групп и разрешений
  • исключить и исключить из параметров, аналогичных GNU tar
  • режим исключения CVS для игнорирования тех же файлов, которые CVS игнорировал бы
  • может использовать любую прозрачную удаленную оболочку, включая ssh или rsh
  • не требует привилегий суперпользователя
  • конвейерная передача файлов для минимизации задержек
  • поддержка анонимных или аутентифицированных демонов rsync (идеально подходит для зеркалирования)

Примером rsync будет:

rsync -avz user@host:'/src/' /dst

Некоторые Gotcha, чтобы высматривать следующие:

  • Помните о том, что после "/" есть разница. Следующие два одинаковы

    • rsync -avz /src /dst
    • rsync -avz /src / /dst /src
  • Вы должны быть осторожны с файлами с пробелами, чтобы они не раскрывались при запуске копии на удаленной оболочке.

    • rsync -avz user @ host:'/src / это плохо' /dst
    • rsync -avz user @ host:"/src / это хорошо" /dst
    • rsync -avz user @ host:'/src / this\ is\ ok\ too' /dst

Вам необходимо иметь демон ssh для удаленных копий или запустить rsync в режиме демона на удаленном компьютере.

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

Также полезно использовать правила фильтрации, если вы хотите пропустить определенные типы файлов или каталогов.

0

почему бы не использовать Dropbox или Skydrive. подобные приложения, как это. 500M это не много в наши дни, особенно когда все идет к волоконной оптике.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .