Как я могу синхронизировать файлы между клонированными системами?

278
cbunn

Я преподаю детям программирование с помощью Scratch, и мы даем каждому ученику Raspberry Pi для использования. Я хочу предоставить им дополнительные файлы для уроков в будущем (например, новые фоновые изображения или спрайт-изображения), но я хочу, чтобы они были как можно более плавными. Можно с уверенностью сказать, что их технические знания невелики, поэтому я бы предпочел, чтобы фоновая служба делала это автоматически.

Я использую Syncthing для своих собственных целей на разных устройствах, так что это была моя первая мысль. Но чтобы подготовить каждый Raspberry Pi, я просто скопирую тот же самый образ SD-карты, который я подготовил, на SD-карту каждого студента. Насколько я понимаю, для синхронизации и других подобных программ требуются уникальные идентификаторы пользователей для каждой системы. Так что, если я клонирую одну и ту же систему, у них у всех будет одинаковый идентификатор, и я предполагаю, что это не будет работать так, как задумано. Но я также не хочу вручную настраивать синхронизацию в дюжине или более систем.

Есть ли способ настроить это перед клонированием систем и синхронизировать файлы из моей системы с каждой из них без каких-либо действий с их стороны? В качестве альтернативы, если есть какой-то способ программно изменить соответствующие файлы в образе системы перед записью каждого из них, это тоже подойдет. Спасибо!

1

2 ответа на вопрос

1
Chico3001

Вы пробовали использовать Rsync ? для этого потребуется доступ в Интернет и сервер, но его очень просто использовать, в Windows вы можете использовать DeltaCopy

https://www.thegeekstuff.com/2012/05/rsync-for-windows-deltacopy/?utm_source=tuicool https://www.raspberrypi.org/documentation/remote-access/ssh/rsync.md

Благодарю. Я знаком с rsync и часто им пользуюсь. Но, как я уже упоминал в этом вопросе, студенты не разбираются в технологиях, и я не ожидаю, что они смогут выполнять такие команды самостоятельно. И учить их тому, как выходит за рамки этого курса. Я мог бы rsync файлы на их компьютеры с моих, когда они находятся в классе, но тогда я должен был бы создать отдельные имена хостов для каждой системы после их отображения и отслеживать их. Точно так же, как настройка Syncthing в каждой системе, я бы предпочел избежать этой проблемы, если это возможно. cbunn 6 лет назад 0
Им не нужно знать, просто настройте задачу cron или создайте скрипт bash, который они запустят для обновления своих систем https://www.raspberrypi.org/documentation/linux/usage/cron.md Chico3001 6 лет назад 0
Хм, это идея. Единственная проблема заключается в том, что я действительно могу ожидать, что ученики будут иметь свои системы в сети, когда они будут в школе (хотя они могут свободно пользоваться ими дома), но есть несколько классов учеников с разным временем занятий и разными учителями (поэтому разные хост-машины в разных сетях), поэтому я думаю, что это может быть немного сложнее. Но я буду иметь это в виду. Благодарю. cbunn 6 лет назад 0
Настройте общий сервер, создайте папки для каждого класса, предоставьте каждому профессору права на чтение и чтение и статус «Только чтение» для студентов, вы даже можете выставить его в Интернет, используя DDNS и открыв брандмауэр, создавая задачу cron для запуска каждый час, rsync будет синхронизировать только последние изменения, сделанные от назначенного профессора, также вы можете создать bash-скрипт, который студент может запустить в начале урока, другая идея - использовать учетную запись облачного хранилища, такую ​​как onedrive, dropbox или gdrive Chico3001 6 лет назад 0
@PimpJuiceIT Я учу их _Scratch_ программированию, который является языком визуального программирования. Редактирование реального кода, запуск скриптов и настройка заданий cron выходят далеко за рамки того, что я хочу, чтобы они изучали. Это ученики начальной школы, и мы будем делать простые анимационные истории и игры. Если вы не знакомы с Scratch, вы должны проверить это. cbunn 6 лет назад 0
@cbunn О, я вижу .... лол Pimp Juice IT 6 лет назад 0
0
cbunn

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

Я запускаю сценарий через cron, но с ключевым словом @reboot, чтобы он запускался всякий раз, когда учащиеся загружают свой Raspberry Pis, что будет в начале урока.