Доброго времени суток.
Имеется ноутбук, нетбук. Задача.
Предположим происходит работа на ноутбуке, в качестве примера возьмем Python с модулями. В качестве ОС стоит Ubuntu. Проделав/установив нужные компоненты, завершаем работу. На нетбуке стоит аналогичная система, необходимо каким-либо способом перенести изменения на нетбук, нечто вроде Diff файловой системы. Основная цель — не заморачиваться с установкой вручную на нетбук всего того, что было установлено на ноутбуке. Есть ли у кого-нибудь информация о том, как это сделать? Возможно есть автоматизированные решения?
Скриптик в крон не нужен.
Основное «но» в данном случае — это не перепутать в какую сторону синхронизироваться, чтобы не затереть последние изменения. в остальном вполне себе инструмент
Дополнительное «но» — определить текущий ip, решается статичными ip внутри сети.
В остальном совет расово верный и правильный. Rsync для этой задачи отлично подходит если компьютеров ровно два.
Пусть у нас есть тачки host1 и host2. Нужно синкать папку /home/akamajoris/projects/foo на обеих тачках.
На обеих тачках юзер имеет одинаковый логин — akamajoris.
Устанавливаем на обеих тачках пакет openssh-server. Проверяем его как
ssh akamajoris@host2
вместо host2 нужно использовать Ip.
если получается залогиниться — то всё ок.
C host 1
— чтобы отправить изменения на host 2 нужно, находясь в папке /home/akamajoris/projects, выполнить
Вместо ~ можно указать полный путь.
Для проверки команды лучше использовать ключ -n, т.е.
rsync -avzn --delete foo/ akamajoris@host2:~/projects/foo/
тогда будет показан только список изменений, а сами файлы изменены не будут.
Проверенные команды лучше добавить в bash-файлы и положить в папку /home/akamajoris/projects/ и назвать соответственно
put_foo_to_notebook
get_foo_from_notebook
put_foo_to_netbook
get_foo_from_netbook
и быть внимательным при их запуске.
А скриптик в крон не нужен, потому что необходимость в синхронизации нужна только в момент присутствия человека за компьютером, так что можно синкать вручную.
Если компьютеров больше двух — то уже система контроля версий.
Скрипт в cron просто для автоматизации процесса так сказать. Но если же время ухода с работы всегда +- одно и то же, то cron тут и будет выступать в качестве небольшой, но автоматизации.
Ах, работа. Предположу, что при уходе с работы ноутбук выключается. А дома выключается нетбук на день. С выключенной тачкой синкаться намного сложнее :3 Тогда нужен третий постоянно-включенный-комп. Либо уже добро пожаловать в bitbucket, например.
Как пользоваться rsync я знаю, тут дело в другом. Для домашнего каталога всё просто, но как быть с системными файлами? При запущенной системе я так понимаю вряд ли получится модификация. Покажите примеры если были значительные изменения в /usr/ и /etc/
Странная затея. В этой общей системе и все драйвера захотите дублировать? А при загрузке каждый раз выставлять необходимые для конкретного ноута модули ядра и прочие конфиги, к железу привязанные, руками? Проще создать образ виртуальной ос, а синхронизировать, к примеру, образ жесткого диска виртуальной машины. Только это задача не для нетбука, в Atom вообще нет аппаратной виртуализации.
Про ядро я перегнул, но некоторые системные файлы модифицироваться будут. Пока склоняюсь к виртуальной машине, но перетаскивать образ всего HDD не есть хорошо, поэтому и ищу альтернативные варианты.
Если все пакеты ставить с помощью apt-get (а не собирать руками), то можно написать скрипт для сравнения и установкм пакетов. Пользовательские данные синхронизировать тем же rsync или хранить в системе контроля версий. Еще один вариант: держать виртуалку в облаке.
Если хотим синхронизировать плоды собственного труда, то лучше всего освоить систему версионного контроля, типа svn, git, bazaar -- на свой вкус. Это будет полезно в профессиональном плане. И, как верно замечают, есть бесплатные серверы в сети, где можно хранить всё это.