Я наткнулся на это исследование одного недостающего кода 226 в серии успешных передач.Моя команда ftp вызывается из vbscript, но в остальном она похожа на вашу:
ftp -i -n -s:"\path\to\cmdfile.txt" [ftpserver] > "\path\to\stdout.log" 2> "\path\to\stderr.log"
Из-за ключа -n и анонимного входа мой командный файл немного отличается:
USER anonymous
cd [UploadDirectory]
binary
put [file]
quit
Как вы заметили, поток STDERR всегда кажется пустым, даже если соединение не установлено.Во всех моих тестах я никогда не видел, чтобы STDERR содержал какую-либо информацию.Однако STDOUT содержит полный журнал транзакций:
220 Unauthorized access to this server is prohibited. All actions are logged.
USER anonymous
230-Anonmyous Access
230 Login successful.
cd [UploadDirectory]
250 Directory successfully changed.
binary
200 Switching to Binary mode.
put "[file]"
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
1058.3090.82quit
221 Goodbye.
Вместо того, чтобы передать команду НАЙТИ, как в вашем примере, я анализирую файл STDOUT, и 99% времени сопоставления выполняетсяна «226 Передача завершена.»;1% времени я вижу только
150 Ok to send data
quit
В тех случаях, когда 226 отсутствует, файл успешно передан (??) и выглядит нетронутым.Все это говорит о том, что, хотя и не так элегантно, как передача вывода в FIND, синтаксический анализ файла STDOUT должен дать вам желаемые результаты.
Несколько других вещей, о которых я могу подумать:1017 *
- Большинство проблем планировщика / cron вызваны путями и разрешениями.MS Scheduler включает опцию «Start In (папка)» - вы пробовали установить это в каталог командных файлов?Кроме того, учетной записи пользователя, для которой вы выполняете запланированное задание, вероятно, следует дать явные (не унаследованные) разрешения на все файлы и папки, используемые пакетом.Если пакет последовательно работает из командной строки, но не работает в планировщике, проблема с разрешениями может быть не просто добавлением учетной записи пользователя планировщика в группу администраторов.
- Что показывают журналы ftp вашего сервера?Мой ftp-сервер vsftpd (Linux), и журналы моего сервера по существу имитируют поток STDOUT, захваченный перенаправлением (с некоторой дополнительной информацией).Это может сказать вам, передаются ли коды успешной передачи с вашего ftp-сервера.
- Вероятно, не причина, но рассмотрите возможность использования параметра / I с FIND, чтобы сделать его нечувствительным к регистру
- Вы пробовали связываться с командой перенаправления?Что-то похожее на: ftp ... 2> & 1 |найти ...