5

У меня проблемы с синхронизацией прав доступа к файлам с помощью rsync. Я пытаюсь синхронизировать папку /home /bin с папкой /home /bin на удаленном компьютере. Проблема в том, что когда я пишу новый скрипт и делаю его исполняемым с помощью 'chmod +x', то после выполнения rsync файл возвращается к неисполняемому.

Если я использую --perms, когда я обновляю права доступа к файлам на удаленной машине, а затем использую rsync на хост-машине, разрешения на файлы не обновляются на хост-машине, а на удаленной машине они возвращаются обратно.

Есть ли способ правильно синхронизировать права доступа к файлам?

ОБНОВЛЕНИЕ: я забыл опубликовать скрипт, который я использую:

#!/bin/bash                                                                     

rsync -e ssh -avz --recursive --progress --update --perms /home/bin username@example.com:/home                                                                              
rsync -e ssh -avz --recursive --progress --update --perms username@example.com:/home/bin /home

1 ответ1

2

Я думаю, что ваша основная проблема заключается в том, что rsync не является хорошим инструментом для двусторонней синхронизации. Я бы порекомендовал какое-то концептуально иное решение, иначе вы продолжите бить себя.

  • Вы можете посмотреть на использование Unison . Он функционирует подобно rsync но рассчитан на две, скажем, синхронизацию.
  • Еще лучше взглянуть на использование системы контроля версий, например, git . Это особенно полезно для таких вещей, как файлы конфигурации и ваши личные сценарии. Каждая машина, на которой вы их используете, будет иметь отдельную проверку, а управление версиями заботится о том, чтобы у вас всегда были самые последние изменения по времени, включая объединение нескольких различных изменений, а не просто слипание данных из какого-либо одного источника.

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