1

Я использую rsync для синхронизации файлов между двумя компьютерами. На одной машине моя оболочка по умолчанию установлена на fish, что нарушает rsync ("несоответствие версии протокола - чиста ли ваша оболочка?"«).

Есть ли способ указать rsync использовать /bin /sh вместо оболочки по умолчанию?

1 ответ1

1

Я вижу это на моей странице руководства по rsync:

ДИАГНОСТИКИ

rsync иногда выдает сообщения об ошибках, которые могут показаться немного загадочными. Больше всего путаницы вызывает «несоответствие версии протокола - чиста ли ваша оболочка?».

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

ssh remotehost /bin/true > out.dat

затем посмотрите на out.dat. Если все работает правильно, то out.dat должен быть файлом нулевой длины. Если вы получаете вышеупомянутую ошибку от rsync, то вы, вероятно, обнаружите, что out.dat содержит некоторый текст или данные. Посмотрите на содержимое и постарайтесь понять, что его производит. Наиболее распространенная причина - неправильно настроенные сценарии запуска оболочки (такие как .cshrc или .profile), которые содержат выходные операторы для неинтерактивных имен входа.

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