Я использую следующий синтаксис scp, чтобы передать выделенные файлы из Linux red-hat 5 на машину Windows (в каталоге Temp),
Примечания:
Я использую эту строку в своих сценариях оболочки
sshpass -p '$password' /usr/bin/scp -o StrictHostKeyChecking=no $FILE USER_1@14.187.12.139:'D:/Temp'
в большинстве случаев файлы переданы успешно
а иногда scp зависает при передаче файлов? , несмотря на то, что подключение в порядке, например, пинг и т. д.
и я получаю следующую ошибку от scp (спустя долгое время)
ssh_exchange_identification: read: Connection reset by peer
Какая другая хорошая альтернатива для scp? , (считайте, что мне нужна 100% стабильности)
Подумайте о том, чтобы перевернуть его и использовать WinSCP с компьютера Windows для подключения и получения файлов на сервере Linux.
Это может быть признаком проблем с сетью - ping не обнаруживает всех проблем. Наиболее вероятная причина - брандмауэр или устройство NAT, которое разрывает соединение.
Добавление -v для подробного вывода в scp даст вам более подробную информацию о том, что он делает, и может дать лучшее представление о том, что происходит. Если вы хотите опубликовать результат неудачной передачи с параметром -v, возможно, я смогу дать более точный ответ.
Сброс соединения одноранговым узлом означает именно это - целевой сервер сбросил / закрыл соединение. Устройства NAT сделают это, если какое-то время не отправлялись какие-либо данные или если они работают некорректно.
Некоторые интернет-провайдеры делают это как форму формирования трафика, чтобы ограничить одноранговый трафик - к сожалению, некоторые применяют это и к соединениям SSH. Скорее всего, это не будет проблемой для бизнес-подключений, но если на одном конце есть домашнее подключение к Интернету, это может произойти.
Сервер SSH в Windows также может быть нестабильным. Вы не указываете, какой из них используете, но не все из них работают надежно.
В одном из реальных примеров странностей у меня был друг, у которого были похожие проблемы - это оказалась ошибка в прошивке его кабельного модема, которая повредила один из каждых двух миллионов пакетов. Достаточно редко, чтобы небольшие переводы работали идеально, но большие каждый раз умирали.
Или это могут быть обычные проблемы с интернетом. Интернет не на 100% надежен и никогда не будет. Иногда происходит сбой подключения, иногда пакеты теряются по пути. Иногда крохотные человечки внутри кабеля Ethernet устраивают забастовку и не хотят нести ваши пакеты. Итак, вам нужен инструмент, который может справиться с этим, и продолжайте попытки, пока не добьетесь успеха.
rsync был бы здесь лучшим выбором просто потому, что он позволяет возобновить работу. Это сообщение в блоге объясняет, как настроить rsync с возобновлением вместо scp. При необходимости вы можете написать простой сценарий оболочки, чтобы проверить код выхода rsync и продолжать попытки, если это не удается. Это другое сообщение в блоге есть пример такого сценария.
Эйтан, вы не упомянули, можете ли вы установить другие инструменты на компьютере с Windows, и если вам нужно зашифрованное соединение, вот мои комментарии и предложения:
Мое предложение
Как видите, мне нравится cygwin, он мне часто помогает в Windows ... и является обязательным инструментом на моем рабочем столе Windows.
Удачи.