• 締切済み

FTP転送エラーについて

こんにちは。 以下の手順でFTP転送しております。(ポートモード) Window2003 Server → ファイヤーフォール → インターネット → ファイヤーフォール? → FTP Server(海外) 1週間に1回の割合で、下記のようなエラーが発生します。 1日の通信回数は約30回ほどです。 データコネクションは確立されてますので、パッシブモードに変更して も問題は解消されないと見ております。 FTPの経験が浅いのですが、この程度のエラーは想定内として考える べきなのでしょうか? 他のシステムで国内同士のFTPは、まったくエラーにならないのですが・・・。 また、エラーとなる原因等がお分かりになる方がいらっしゃいました ら、アドバイスお願い致します。 220 mailgate Microsoft FTP Service (Version 5.0). 331 Password required for user. 230 User user logged in. FTPサーバへPutします。 ファイル名:/user/file/sample.txt From C:\FTP\data\sample_FCHSHGCD.put 200 Type set to I. 200 PORT command successful. 150 Opening BINARY mode data connection for /user/file/sample.txt. 425 Can't open data connection. //エラー発生 221

みんなの回答

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.2

> モードにより、FTPがエラーになることはあるのでしょうか? バイナリファイルをASCIIで転送すると中身が壊れることが多いですね テキストファイルをBINARYで転送した場合、異なるOS(UNIXとWindows間とか)でたまにおかしな動きをすることがあります 今回の場合、同じWindows間でのFTPに見えますが、相手が海外ということでASCIIモードで転送したらどうなるかというご提案でした ちなみに再現性はあるのでしょうか? 一度失敗したファイルは何度やっても失敗しますか? それともリトライすればファイルを変更しなくても成功しますか?

YT0925
質問者

お礼

こんばんは。 現在、失敗した場合は3回までリトライさせています。 リトライで成功することも稀にありますが、ほとんどの場合は 全て失敗します。426が返ってきます。 これは質問になってしまうのですが、テキストファイルを異なるOS間で BINARYで転送すると、なぜ問題が起こってしまうのでしょうか? OSによって2進数の解釈が異なるのでしょうか? また、FTPについてはクライアントしか経験がないのですが、サーバー 側もモードを設定するものですか? 仮に設定する場合、クライアントと異なると何か問題を起こすことも あるのでしょうか? すみませんが、お教え下さい。 よろしくお願いいたします。

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.1

BINARYモードではなくASCIIモードで転送したらどうなりますか? というより、拡張子からするとテキストファイルのように見えるのですが、BINARYモードで転送しているのは何故ですか?

YT0925
質問者

お礼

こんばんは。 とても初歩的なことなのかもしれないですが、モードを気にした ことはありませんでした。 おっしゃるとおり、転送しているのはテキストファイルです。 半角文字しか格納してません。 BINARYモードでもASCIIモードでも、問題ないと思っていたのですが、、、 モードにより、FTPがエラーになることはあるのでしょうか? この書き込みをした後で、いろいろ調べたのですが、インターネット 上でのロストすることもあるようなのですが、どうなのでしょうか? もしお分かりになれば、教えてく下さい。

関連するQ&A

  • ftp put エラー

    初めまして、ftpでデータ(txt)をアップロード(put)する場合時折 下記エラーが発生する場合があります。 どんな理由が考えられるでしょうか。 エラー内容:426 Connection closed; transfer aborted 状況を列記します。 ・エラーの頻度は100回に1回ほどエラーになる頻度です。 (putは自動化しており、connectできなかったら、10秒後に再度 connectし、putコマンドを発行して、closeして完了です。) ・(いつも)pasvでputしています。 ・一般のひかりネット回線(フレッツ)を利用。 推察するに、回線の一時的障害や混雑で、ftpサーバーへのセッションが張れないor断絶するのかと思います。 ※相手方のftpサ-バの問題か回線の問題なのかを切り分けたいと思います。 お知恵を頂ければ幸いです。

  • FTPのコマンド「mput」について

    FTPで、ファイルを一括して、サーバーに送りたいのですが、その際に 「mput *.* *.*」などとすると、それぞれのファイルが2回putされます。これは、仕様でしょうか。 例えば、1つのファイル「A.txt」を mput した場合と、put した場合では、下記のようになります。 <mput> ************************ ftp> mput A.txt A.txt 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.01Seconds 10615.47Kbytes/sec. 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.00Seconds 159232000.00Kbytes/sec. ************************ <put> ************************ ftp> put A.txt A.txt 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.01Seconds 10615.47Kbytes/sec. ************************

  • CGI版PHPでのFTPの使用について

    現在、RedhatLinux6.2J,PostgreSQL7.1,php-4.0.4-pl1という環境でCGI版PHPを使用しています。 ftp()を使用しているのですがなかなかうまくいかず困っています。 現在下記の様なソースをPHPマニュアルからもってきて動かしています。 ==================================================================== #! /usr/local/bin/php -q <? $ftp_server = "ftpサーバーのIP"; $user = "username"; $pass = "passwd"; $conn_id = ftp_connect("$ftp_server"); $login_result = ftp_login($conn_id, $user, $pass); if ((!$conn_id) || (!$login_result)) { echo "Ftp connection has failed!"; echo "Attempted to connect to ".$ftp_server." for user ".$user; die; } else { echo "Connected to ".$ftp_server.", for user ".$user; } $local_file = "test.txt"; $remote_file = "up.txt"; $upload = ftp_put($conn_id, $remote_file, $local_file, FTP_ASCII); if (!$upload) { echo "Ftp upload has failed!"; } else { echo "Uploaded ".$local_file." to ".$ftp_server." as ".$remote_file; } ftp_quit($conn_id); ?> ==================================================================== $conn_id = ftp_connect("$ftp_server");のところで Fatal error:Call to undefined function: ftp_connect() in ./ftp_test.php on line 7 というエラーがでてしまい落ちてしまいます。 何かお分かりになる方おられましたらご教授願えますでしょうか? インストール時にしなければいけないことや php.iniファイル等で設定しなければいけない項目等ありましたらご教授お願いします。 また、passiveモードでの送受信の仕方についてもぜひご教授お願いいたします。 失礼します。

    • ベストアンサー
    • PHP
  • FTPエラーについて

    DreamweaverMXでホームページを作成しています。mp3ファイルをputしてページに音楽をmp3で流したいのですが、「FTPエラーが発生しました。XXXmp3をputできません。 452Error writing file:Disk quota exceeded」のメッセージがでてしまいます。 すこし前にでも何曲かはputできました。 なぜエラーになってしまうのかわかりません。

  • FTPでConnectionエラーになります

    FTPでDIONのサーバにログインできるのですが、ファイル操作でエラーになります。 以前「PASVモード」の設定でエラーになったことがあるので、設定は変更してあります。 最近何か環境が変更されましたか?ご存知の方がいらしたら教えて頂けませんでしょうか。 以下がエラーメッセージです。 Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\nakakatu>ftp ftp> open ftp.h4.dion.ne.jp Connected to ftp.h4.dion.ne.jp. 220 Welcome to ftp.h4.dion.ne.jp User (ftp.h4.dion.ne.jp:(none)): aXXXXXXXXX 331 Password required for aXXXXXXXXX. Password: 230 User aXXXXXXXXX logged in. ftp> ls 200 PORT command successful 425 Unable to build data connection: Connection refused ftp>

  • FTP PASV後毎回425になる件

    お読み頂き有難う御座います。 FTPでPASVを使用しファイルを送信する際、初回Put時『425 Cannot open data connection.』となります。PASVモードを指定し数秒待ったあと、Putしても同様 の現象です。 サーバ側の設定等で対処可能なのか、クライアント側による425が返却された場合 にリトライを行う対処が正しいのか、ご経験のあるかたアドバイスをお願いします。 【環境】 サーバOS:WindowsServer2019 サーバポート解放状況:20,21,65500-65510 クライアントOS:Windows10 【コマンドログ】 C:\Users\xxxxxxxx>ftp -d xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx に接続しました。 220 Microsoft FTP Service ユーザー (xxx.xxx.xxx.xxx:(none)): xxxxxxxx ---> USER xxxxxxxx 331 Password required パスワード: ---> PASS asonetestpass 230 User logged in. ftp> bin ---> TYPE I 200 Type set to I. ftp> quote PASV ---> PASV 227 Entering Passive Mode (xxx,xxx,xxx,xxx,xxx,xxx). ftp> put hoge.txt ---> PORT xxx,xxx,xxx,xxx,xxx,xxx 200 PORT command successful. ---> STOR hoge.txt 150 Opening BINARY mode data connection. 425 Cannot open data connection. ftp> put hoge.txt ---> PORT xxx,xxx,xxx,xxx,xxx,xxx 200 PORT command successful. ---> STOR hoge.txt 125 Data connection already open; Transfer starting. 226 Transfer complete. ftp> ftp> by ---> QUIT 221 Goodbye.

  • コマンドプロンプトでFTPでエラー

    FTPコマンドプロンプトについてお聞きしたいです。 フォルダの中に 01.bat、01.txt、index.htmlが入っています バッチの中身は ftp -s:ftp00.txt テキストの中身は open サーバー名 ユーザー名 パスワード asc put index.html disconnect bye これを実行したら以下の様になったのですが、なにが原因なのでしょうか? スクリプト ファイル ftp00.txt を開くときにエラーが発生しました。 それともう一つ質問があるのですが、 手動でFTP情報をコマンドプロンプトに入力していったら ホスト接続完了→ユーザー名完了→パス入力のところで なぜかキーボードが入力できなくなってしまいます。 なぜでしょうか? osはvistaです。

  • phpのftp_get()でエラーが出ます。

    今回phpを使ってftp関数であるftp_getを実行してみたところ【Warning: ftp_get(): Error opening】が出てきました。 サイトで調べた結果、パスの指定のミスかパーミッションが原因だと言うことがわかりました。 それから小一時間あれこれ試してみましたがダメでした・・・。 そこで今度はperlを使って同じ内容のスクリプトを書いてみると成功しました。 どなたかphpの方ではなぜ正しく動作出来ないのかをご教示ください。 以下はphpとperlのスクリプトです。 =========================================================================== <?php $FTPSERVER = "!!!"; $FTPUSER = "@@@"; $FTPPASSWORD = "***"; //ftpサーバに接続 $ftp = ftp_connect($FTPSERVER); //ユーザログイン ftp_login($ftp, $FTPUSER, $FTPPASSWORD); ftp_pasv($ftp, true); $srverfile = "test.txt"; $localfile = "data1.txt"; ftp_get($ftp, $localfile, $srverfile , FTP_BINARY); ftp_quit($ftp); ?> ============================================================================ #!/usr/local/bin/perl use Net::FTP; my $host = '!!!'; # 接続先 my $user = '@@@'; # FTPのユーザ my $pass = '***'; # FTPのパスワード my $remote_file = 'test.txt'; # リモートのファイル(これを取得) my $local_file = 'data1.txt'; # ローカルファイル(ここに保存) my $ftp = Net::FTP->new($host) or die "can not connection: $@"; $ftp->login($user, $pass) or die $ftp->message; # ログイン $ftp->binary; # バイナリモードに変更 $ftp->get($remote_file, $local_file) or warn $ftp->message; # ファイル取得 $ftp->quit; # 終了

    • 締切済み
    • PHP
  • FTPコマンドのputについて

    AIX、Kシェルです。 ftpでputする際、相対パスは使用出来ないのでしょうか? ex) ftp -nv open HostName user User Password cd tmp/testwork/ put ../file/xxxx.txt quit 上記で実行すると、 putのところで 「200 EPRT command successful. 553 ../file/xxxx.txt: No such file or directory」 というメッセージが出ます。 lcdで作業ディレクトリーを../fileに変更して、put xxxx.txt は出来るのですが、putで相対パスは出来ないのでしょうか? お手数ですが、何卒宜しくお願い致します。

  • FTP転送をしたいのですが

    あるクライアントでコマンドプロンプトから以下を行っても 処理ができません。(エラーなども出力されません) 20秒ほどたつと、勝手にコマンドプロンプトが終了して しまいます。何が悪いのか、お分かりになる方がいらっしゃいましたら 教えてください。 (ftp.exe は、c:\window\system32 に存在しています。) 宜しくお願いします。 C:\>ftp -n -s:c:\test_ftp.txt xxx.xxx.xxx.xxx (←IPアドレスです) test_ftp.txtファイルは以下のようになっています。 user anonymous binary put c:\test.xls /aaa/test.xls quit