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

 mut@mylocalcomputer:~$ rsync -chavzP --stats mut@mambo.m66.com:/home/users/mut/thedirectoryIneed /User/mut/
 mut@mamba.m66.com's  password: 
 protocol version mismatch -- is your shell clean?
 (see the rsync man page for an explanation)
 rsync error: protocol incompatibility (code 2) at /SourceCache/rsync/rsync-42/rsync  /compat.c(61) [receiver=2.6.9] 

Поэтому я укомплектовал rsync и следовал инструкциям для диагностики проблемы с помощью следующего (ввод в локальную командную строку):

ssh mut@mamba.m66.com /bin/true > out.dat

введите пароль, и ничего не получите обратно - он просто выплюнул новое приглашение).

(2) Так что я попытался scp вместо этого, и каждый раз , когда я scp через ssh из локального я получаю следующий результат отображения типов файлов, размера, права доступа и имя файла, но ничего другого:

 C0644 183 fileineedfromremoteserver.cpp

но файл не копируется (или, по крайней мере, я не могу найти его нигде на моем компьютере).

Любые предложения относительно того, в чем может быть проблема, или что еще я мог бы попробовать?

примечание: мой локальный - это CLI терминала по умолчанию в OSX(BSD), а сервер - GNU linux. У меня никогда не было проблем до копирования файлов с сервера, и единственное, что я могу вспомнить, это изменилось с тех пор, как в какой-то момент я набрал команду для генерирования ключа SSH из локального (в неудачной попытке попытаться автоматизировать мой логин на сервер без необходимости каждый раз вводить пароль). Я сомневаюсь, что это как-то связано с этим.

1 ответ1

0

Прошло уже много лет с тех пор, как я видел эту ошибку, но IIRC, когда я ее видел, была из-за наличия чего-то в неправильном rc-файле оболочки, который выводит текст при входе в систему.

Указанные файлы относятся к используемой оболочке, но вот как вы можете это исправить для bash.

Войдя в учетную запись на удаленной системе (mambo.m66.com) выполните . .bashrc (обратите внимание, первый период не опечатка). Если вы видите какой-либо вывод при выполнении этой команды, вы должны переместить команду из файла .bashrc в .bash_profile.

abydos:~ jonv$ touch sourcefile
abydos:~ jonv$ echo 'echo This should work.' > .bash_profile
abydos:~ jonv$ rsync jonv@localhost:sourcefile destfile
abydos:~ jonv$ echo 'echo This should NOT work.' > .bashrc
abydos:~ jonv$ rsync jonv@localhost:sourcefile destfile
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at /SourceCache/rsync/rsync-42/rsync/compat.c(61) [receiver=2.6.9]

Есть много ресурсов в сети, если вы хотите читать дальше в нее. Вы можете найти «.bashrc vs .bash_profile» и получить много.

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