質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

2回答

18714閲覧

FTPで送信が失敗する原因が分かりません

999turbulence

総合スコア20

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2016/04/25 14:04

編集2016/04/26 02:19

FTPを対話式でなくバッチで実行するときの質問です
リモートサーバーにパッシブモードでPDFファイルを送る処理を記載したコマンドテキストを読み込むバッチを連続起動したところ、ファイルが送信されていない事象が発生します

内容をリダイレクトすると421というリターンコードが返されており、接続が切れてしまっているようです
TCPレベルのパケットを相手側に解析頂くとこちらからFINを送信しているためリモート側でセッションの終了手続きに入ってしまうとのことでした
FINはWindowsのコマンドのbyeにあたるかと考えたのてすがきちんとファイルを送信した後でbyeしているはずなのですが何故このようになるのかが分からないです

バッチ

C:\Windows\SUA\bin\ftp ftp://USER:PASSWORD@SERVER <file.txt

file.txt

binary
prompt
cd dir1
lcd \dev\fs\D:\temp
put send_var.txt
mput send_var*.pdf
bye

C:\Windows\SUA\bin\ftpの部分が不勉強でよく分からない(EUCという文字コードで書かれていました)のですが、コマンドテキストの内容が原因であると考えたため詳細を省略します

アドバイスを頂けたらと存じます
よろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

SUAのftpを使う理由は何でしょうか?
SUAは使ったこと無いですが、Windows標準のftpだとこうです。

DOS

1ftp -s:file.txt

file.txt:

open SERVER USER PASSWORD binary prompt cd dir1 lcd \dev\fs\D:\temp put send_var.txt mput send_var*.pdf bye

投稿2016/04/26 00:54

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

999turbulence

2016/04/26 02:17

ご回答ありがとうございます! PASVモードのFTPで行いたく、Windowsのコマンドプロンプトでは PASVモードが対応していないということだったのでSUAのftpを使用しています。 ACTIVEでリモートホストにputコマンドを送ると 200 PORT command successful. Consider using PASV と返ってきてしばらくすると 425 Failed to establish connection とでてしまい接続がうまくできません
guest

0

ベストアンサー

ざっと思いつくことを…
・ローカルのCDはバッチの方でやった方がわかりやすいかも
・mput を応答なしでやるオプションは必要ないんですか?

とりあえず、手動で file.txt を動かしてみたらなんか分かるかも?

投稿2016/04/25 14:24

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

999turbulence

2016/04/25 14:37

回答ありがとうございます! cdは確かにバッチでやる方が分かりやすいですね mputは応答を聞かれないように promptを送信しています (デフォルトが対話ON.なので一回打鍵するとOFFにしています) 手動でやるといつも成功してしまいます(..) このバッチを1000回くらい連続で起動しますが回数の問題でしょうか
999turbulence

2016/04/25 14:39

間違えました ×cdは ○ローカルのcdは
takasima20

2016/04/25 15:44

ちなみに、バッチの中身は(実際には)1行ですよね? あとは verbose で表示をおさえるとか リダイレクトでなく ftp のオプションで file.txt を与えるとか
999turbulence

2016/04/26 00:54

バッチの中身は1行で書いています! verboseのありなし試してみます FINパケットが送信されていると回答がくるのは 実にさまざまなタイミングがあることが分かりbyeが原因ではない気もしています ユーザー名を求められたとき ログイン直後 CD直後 txtファイルのput直後 など・・・ 他のジョブが悪さしているかも含め再度調べます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問