Ошибка команды WinSCP PUT с «Неизвестным переключателем rawtransfersettings» - PullRequest
1 голос
/ 16 апреля 2019

У нас есть задание, которое находится на сервере Windows, и оно отвечает за отправку файлов на ящик Linux с помощью утилиты WinSCP.
Мы наблюдали, что процесс передачи файлов не выполняется из-за ошибки подключения в среднем каждый дополнительный день.

Мы получаем ниже сообщение об ошибке в журналах:

Загрузка файла 'xxx_20190103031754.csv' прошла успешно, но произошла ошибка при установке разрешений и / или отметки времени.
Если проблема не устраняется, отключите настройку разрешений или сохранение временной метки.
В качестве альтернативы вы можете включить опцию «Игнорировать ошибки прав доступа». Общий сбой (сервер должен предоставить описание ошибки).

Чтобы решить проблему, я набрал в Google -rawtransfersettings для put command

open sftp://xxx@xxx.example.com/ -hostkey="ssh-rsa 1024 xx:xx:xx:xx:xx:xx" -timeout=60 -rawsettings SendBuf=0 SshSimple=1

put -rawtransfersettings IgnorePermErrors=0 PreserveTimeDirs=0 "E:\Final\XXX_ASSIGNMENT_20190416200819.csv" "/<Linux Box Folder Name>/" 

Но я получаю ошибку ниже

Аутентификация с предварительно введенным паролем.
Идентифицированные.
Начало сеанса ...
Сессия началась.
Активный сеанс: [1] xxx@xxx.com
Неизвестный переключатель «rawtransfersettings».

1 Ответ

0 голосов
/ 17 апреля 2019

Переключатель -rawtransfersettings поддерживается только последней версией WinSCP 5.15. Возможно, вы используете более старую версию WinSCP.

Кроме того, если ваша цель состояла в том, чтобы включить «Игнорировать ошибки прав доступа» , вам необходимо IgnorePermErrors=1 (0 - значение по умолчанию) .

Примечания: PreserveTimeDirs не имеет отношения к вашей проблеме и в любом случае равно 0. Таким образом, вы можете удалить это. И двойная косая черта подозрительна, вы, вероятно, должны использовать только одну.

Это должно сделать:

put -rawtransfersettings IgnorePermErrors=1 "E:\Final\XXX_ASSIGNMENT_20190416200819.csv" "/"

Но если ваш сервер на самом деле не поддерживает сохранение временных меток, то вам лучше использовать переключатель -nopreversetime. Информацию об ошибке см. В документации :

При использовании сценариев , добавьте -nopreservetime и -nopermissions, чтобы переключиться на put команду .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...