• ベストアンサー

FTPの”GET”について

2つのサーバー間において、FTPサーバーは両方に入っているのですが、 片方のFTPはサービスを停止しています。残りの一方から、停止している 側へFTPのGETを使って、ファイルを取っているようなのですが、どういう 仕組みなのでしょうか。相手方にFTPサービスが稼動していなくても、 こちら側のFTPからファイルをもってくることが可能なのですか? どのなたかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

ftp を使ってファイルを転送するときには、ftp サーバと ftp クライアントが います。 ファイルを持ってくる場合には、ファイルを抱えているマシンで ftp サーバが 動作していて、ファイルを欲しい側の ftp クライアントから GET を発行して ファイルを転送してもらいます。  GET ファイルA ■─────────→■ ftp ■←─────────■ サーバ        ファイルA > 停止している側へFTPのGETを使って、ファイルを取っている をより正確に書くと、「停止している側から ftp の GET を使って、 サービスが稼動している側からファイルを持ってくる」です。

saya9999
質問者

お礼

ん~、ファイルを提供する方はFTPサーバーとして必ずサービスを稼動させなくては いけないということですね。提供している側のFTPサイト(仮想ディレクトリ・ちなみにNT4.0のMMCから)を確認すると、『停止』と表示されていたもので。 もう一度設定を確認してみます。ありがとうございました。

その他の回答 (1)

  • ro-su
  • ベストアンサー率24% (19/79)
回答No.1

えーと、使われているコマンドは確実に 「GET」でしたか?逆にファイルを送り出す、 「PUT」ではなかったのでしょうか・・・・ それなら別にFTPD(FTPサーバの事)が無くても 大丈夫なはずですが。

saya9999
質問者

補足

はい、バッチファイルで定期的にFTPアクセスを行っているのですが GETです。(mget)

関連するQ&A

  • FTPでのGET

    サーバ上にあるファイルをFTPのGETでダウンロードする場合、 転送中のサーバ上のファイルは、どうなるのですか? 切り取りで転送することは可能ですか? サーバ側では、 クライアント側で転送中であるかどうか、 もしくは削除して欲しいのですが。 転送中に、そのファイルを触れないようにするため。

  • FTPで中途半端なファイルをGETしてしまう。

    相手先にてFTPサーバーを構築しファイルをセットして頂き、こちら側よりFTPでGETしていくような形での情報連携を考えています。 数キロバイトレベルのファイルであれば何ら問題無いのですが、数メガレベルになってくると、セット途中のファイルをGETしてしまい、正しいファイルを取得することができません。 (配置途中のファイルがFTP上に見えてしまう) 相手先はLINUXにて構築、こちら側はWIN2012SERVERになります。 FTPでの方式を変更しない形での解決策ってございますでしょうか?

  • FTPのPUT、GETについて

    FTPのPUT、GETについてお教え下さい。現在サーバーの設定は完了し、DOS画面よりFTPでPUTを行っているのですが、送信先となるサーバーにファイルサイズがゼロのファイルが作成され、途中で止まった状態になってしまいます。GETも同様でサーバーからクライアントにファイルを取得はしているのですが、ファイルサイズがゼロのファイルが作成され止まった状態になってしまいます。また、他のサーバーでPUT、GETを行うとPUT、GET共にファイルの取得も送信も出来ます(クライアントは同じPCを使っています)。やはりサーバーの設定が足りないのでしょうか? どなたか対策方法をご存知の方がいましたらお教え下さい。よろしくお願い致します。

  • ftp_getできない?

    レンタルサーバの自前のファイルサーバからFTP接続にてファイルを取得しようとしているのですが、エラーとなってしまいます。 FTP接続はできているのですが、ファイルの取得に失敗(FALSE)してしまいます。 レンタルサーバの環境は OS:Linux PHP:4.4.1 試しにftp_nlist関数にてファイル一覧を取得しようとしましたが、やはり失敗(FALSE)してしまいます。 知り合いのレンタルサーバを借用して全く同じプログラムを実行すると正常に一覧の取得ができました。 FTP接続時・ログイン時にはエラーが発生していないのでFTPでの転送は可能だと思うのですが、全くわかりません。 どなたか分かる方ご教授お願いします。 以下、スクリプトです。 if($ftp=ftp_connect($ftp_host)){  if(ftp_login($ftp,$ftp_user,$ftp_pass)){   //ファイルリスト一覧取得    $file_list=ftp_nlist($ftp,".");   var_dump($file_list);   //ファイルダウンロード    if(!(ftp_get($ftp,$local_file,$remote_file,FTP_BINARY))){     エラー処理1;    }   }   else{     エラー処理2;   } } else{  エラー処理3; }

    • ベストアンサー
    • PHP
  • FTPファイルのget後のファイル削除について

    IIS7.5とWindows Server 2008 R2でFTPサーバーを構築しています。 FTPサーバーにファイルを保存して、そのファイルをお客様がFTPサーバーに 接続してgetします。 その際に、同じファイルが2回get出来ないように、getされたファイルのみを 削除したいと考えています。 また、getされた場合だけ削除したいので、getされていないファイルの削除は 出来ない為、コマンドによる自動削除は行えません。 getされた場合にのみ該当ファイル削除するようなソフトや方法などがあれば お教え下さい。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • FTPのgetとputの使いわけ。

    FTPについてですが、getとputのどちらを使えばいいのかいまいち理解できません。FTPで入ったマシンからみてget,putなのか、ファイルのある側からみてget,putなのかどちらなのでしょうか? 教えてください。

  • FTPコマンドでgetしたい

    FTPコマンドでファイルを転送したい。操作はクライアントで行っています。 サーバ⇒クライアントです。ディレクトリー構成は。(サーバー側)c:\2.txt を⇒(クライアント側)c:\2.txt に転送したいのですがエラーが出ます。次のように実行しています。 ftp>get c:\2.txt c:\2.txt としています。これを実行すると次のエラー 【550 c:\2.txt :The filename is incorrect】 と出ます。どうすればよいでしょうか? ファイルタイプもascii にしたりbin にしたり試しているがだめです。 お願いします。

  • シーケンス順にget (ftp)

    シーケンス順にget (ftp) こんにちは。 当方Windows 2003 Server、相手はWindows系でIIS6.0という構成でFTPで通信を 行いたいと思います。 相手側の所定のフォルダーに、例えば MB001.txt MB002.txt MB003.txt という具合にファイルが格納されています。 これを、当方側がgetで引き取りたいのですが、このときの仕様として、 ・シーケンス順を守りたい(例で言うと001から順に) ・引き取った後はデータを削除する があります。 そこで、シーケンス順を守る形でgetでき、getできたファイルだけを削除する方法が あれば教えてく頂きたいと思います。 どうぞ宜しくお願い致します。

  • FTPで存在しないファイルをGETしたときの動作について

    皆様 FTPコマンドで、FTPサーバ上に存在しないファイルをGETした場合の動作について教えてください。 Windowsのコマンドプロンプトで、FTPを使い、ファイルを取得しようとしています。 たまたま、取得対象ファイルがサーバ上に存在しない場合、サーバからのステータスコードは550であるのに、0バイトのファイルが保存されてしまいます。 これは、通常の動作でしょうか? (私の知る限り、0バイトファイルを生成するFTPクライアントは無いのですが…) あるいは、何か設定等に問題があるのでしょうか? 設定等に問題が有る可能性があれば、それを教えてください。 ちなみに環境は 【クライアント】 OS:WindowsXP SP2 【サーバ】 OS:Windows2003サーバ FTPサーバ:Microsoft FTP Service(IIS) です。 よろしくお願いします。

  • 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