Синхронизация linux машин

Сорри, если вопрос нубский.

Итак, есть рабочая машина, есть ноут. Как лучше сделать так, чтобы я мог закончить работу на рабочей машине и продолжить на ноуте? Потом вернуться домой и продолжить работу на основной машине?

Программы — связаны с разработкой. Eclipse, тулзы и т д. В линуксе нуб, но как я понимаю, тот же eclipse — его просто можно скопировать. Это же и касается папки ~.
Но ведь есть же еще и всевозможные пакеты, пользователи, группы и т д. Их тоже нужно как-то синхронизировать.

Что думаете по этому поводу? Вообще, задача решаема? Ведь если железо разное, то, наверное, какой-то набор пакетов в принципе должен различаться.
Думал про виртуальную машину, но уж очень велико падение производительности.

PS: да, я знаю про dropbox и ubuntuone (но я предпочел lubuntu), знаю, что есть rsync (но никогда его еще не использовал). Ответом может быть просто совет, как написать скрипт и общие мысли на этот счет.

PPS: ну вот скажем, я на одной машине поставил какой-то тул через apt-get. потом создал пользователя и группу. а на другой как автоматически поставить тул и автоматически создать пользователя?

PPPS: а что вообще нужно синхронизировать? вот сходу: папки пользователей и /opt (например, через rsync), пользователей/ группы (пока не знаю как).
  • Вопрос задан
  • 5841 просмотр
Пригласить эксперта
Ответы на вопрос 7
7workers
@7workers
Не думаю, что синхронизировать абсолютно всё можно (и нужно). Я держу проекты в виртуальынх машинах (падение производительности я не замечаю, virtualbox). среду и инструменты один раз настроил и там и там. SSH ключи и доки проектов держу в дроп-боксе, код всё равно в GIT так что остаётся платформа под проекты — базы данных, система и т.д. — оно в virtualbox. Если виртуалка уж сильно «отстала по времени», то просто копирую образ диска (сбрасываю на mobile HDD), но обычно хватает сделать git pull. Если очень хочется, то можно держать виртуалки прямо на переносном HDD, думаю можно найти довольно быстрый.
Ответ написан
Комментировать
gigigi
@gigigi
Системы контроля версий. Например git. Можно поднять удалённый репозиторий на своём сервере или купить на github.
Делаю так и со своими проектами и рабочие проекты работают по тому же принципу. Работаем из офиса, но иногда нужно что-то сделать из дома. Всё сводится к простому git pull… git commit, git push.
Ответ написан
Mezomish
@Mezomish
Первое, что пришло в голову — удалённый доступ. Т.е. вы хоть из дома, хоть с работы на самом деле используете один и тот же компьютер, просто в одном случае локально, а в другом — удалённо. Но тут упирается в скорость интернета.

Второй вариант, на самом деле самый простой — физически таскайте с собой комп (разумеется, ноутбук) :)
Пришли на работу, воткнули монитор/мышь/клаву — и вот у вас рабочее место, продолжайте ровно с того момента, на котором закончили дома.

Других вариантов, как синхронизировать всё, я как-то не вижу. Но я, если честно, не вижу и смысла в такой синхронизации, т.к. сомневаюсь, что вы настолько часто ставите/удаляете пакеты или меняете рабочее окружение. А для всего остального есть MasterCard VCS, Dropbox и прочее.
Ответ написан
gigigi
@gigigi
Можно конечно и rsync'ом воспользоваться. Его вполне просто использовать rsync [что] [куда].
Настраиваете ssh без пароля, прописываете хост в ~/.ssh/config и потом просто сливаете
rsync --progress -avz -e ssh yourserver:/home/user/www/project/ /home/user/www/project/
ну и так же заливаете
rsync --progress -avz -e ssh /home/user/www/project/ yourserver:/home/user/www/project/
Но лучше git :)
Ответ написан
Комментировать
@rPman
Если задача стоит, синхронизироваться в общем случае (т.е. в идеале все, но я не знаю что именно может понадобиться синхронизировать завтра), то загляните в сторону виртуальных машин. Почти все (да я как посмотрю абсолютно все современные) позволяют сохранять текущее состояние, в т.ч. оперативной памяти (если это так может оказаться же актуально).

Заверните все свое внутрь виртуалки и таскайте с собой образ и текущие снапшоты на флешке/dropbox-аналоги.

Если же данных много больше размера флешки, делайте тупой bzdiff, сохраняя дома и на работе копию предыдущего/унесенного образа. Т.е. на каждом узле должны храниться копии текущего состояния на всех узлах, понятно что в один момент времени не все они одинаковы, вот для этого их и необходимо сохранить, а перед уходом делать bzdif с сохраненным, полученный патч применять на этот образ, нести его домой и применять его там (перед уходом на работу делать все то же самое но уже с образом рабочим).
При количестве узлов = 2, список команд для этого очень маленький — 2-3 строчки в каждом.
Ответ написан
Комментировать
Infra_HDC
@Infra_HDC
R2AMO
А если посмотреть на вариант держать виртуальную машину в облаке (так, чисто концептуальный вопрос)?
Ответ написан
afiskon
@afiskon
Использую Git и Dropbox, хватает за глаза. В том числе через Git синхронизирую всякие файлы конфигурации и тп. Еще как вариант можете купить себе VDS и вести разработку на нем. В этом случае будет неважно, откуда вы это делаете — из дома или с работы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы