• ベストアンサー

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 にしたり試しているがだめです。 お願いします。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.4

掲題の内容を見ると、サーバはWindows系と思われます。 この前提でお話しますと、「FTPは何処でも参照できる訳ではない。」 と言うことです。FTPサーバ側はホームディレクトリが決まっている ので、それ以下の階層(ディレクトリ)しか参照できません。 サーバ側で次の操作を行います。コントロールパネル→管理ツール→ インターネットインフォメーションサービス 次にコンピュータを開き、「規定のFTPサイト」のプロパティを展開 します。ここの「ホームディレクトリ」タブがFTPのルートです。 これを"C:\"にすれば目的は達成できますが、FTPでC:\を開放する ことによって生じる危険性は十分に認識してください。 つまり、ルートディレクトリに目的ファイルを置くと言うのが、 問題のある設計なのです。

saikichi99
質問者

お礼

ありがとうございました! 無事転送できました。FTPのルートに転送したいファイルを置き操作したところ転送できました。 助かりましたありがとうございました。 IISの設定が必要とは想像しませんでした。

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>解決するにはどこを見ればよいのでしょうか? ftpデーモンに何を使っているかも提示されていないし ちょっとわかりかねます・・・ なにか設定するダイアログかファイルがあると思うので そこでルートディレクトリを指定できるんじゃないですか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ftp> cd \ としたあとに ftp> ls ってしてみてください。 そこに2.txtがないならそのftpではc:\まで遡れない設定に なっていると思います。そのサーバーの設定をみてみてください。

saikichi99
質問者

補足

回答ありがとうございます。次の結果となりました。解決するにはどこを見ればよいのでしょうか? よろしくお願いします。 230 User administrator logged in. ftp> cd \ 250 CWD command successful. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for file list. 226 Transfer complete. ftp>

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ftp>lcd c:/ ftp>cd / ftp>get 2.txt とかいう感じじゃないでしょか?

saikichi99
質問者

お礼

試行しましたが、まだできないようです。結果は以下のとおりです。 230 User administrator logged in. ftp> lcd c:\ Local directory now C:\. ftp> cd \ 250 CWD command successful. ftp> get 2.txt 200 PORT command successful. 550 2.txt: The system cannot find the file specified. ftp>

saikichi99
質問者

補足

早速の返答ありがとうございます。今試行できる環境にないため明日試します。初心者で申し訳ありませんが質問させてください。 ftp>lcd c:/ ftp>cd / の意味を教えてください。こちらで調べたのは ftp>lcd c:/   ⇒ローカル側のディレクトリを移動する。更に言えばファイルの転送先をc:\直下にする ということでしょうか? ftp>cd /    ⇒サーバー側のディレクトリを移動する。更に言えばファイルの取得はc:\直下にあるファイル ということでしょうか?【cd /】の意味は【c:\直下】でよろしいでしょうか?

関連するQ&A

  • FTPでのGET

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

  • 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
  • NTのFTP通信

    こんにちわ Windows NT 4.0 workstationにて(数台) FTP転送したいのですが、 転送するファイル名が固定ではありません。 転送するファイルは以下のようなファイルになります。 yanolog.txt saitolog.txt sayamalog.txt このような場合、下記のputのぶぶんを put *log.txt で実行しても転送されるでしょうか? open ftp.noname.ne.jp bluepixy password ascii put *log.txt close quit よろしくお願いします

  • プロキシサーバー経由でftpのgetを行う方法

    社内LANからプロキシサーバーを経由して、外部のサーバにあるファイルをftpでgetしようとし ています。 方法としては、定期実行するためにスクリプトで下記のようなテキスト(ftpcmd.txt)を作成し、 バッチファイル(auto.bat)でftpコマンドを実行する予定です。 <ftpcmd.txt> open xxx.xxx.xxx.xxx user1 passwd1 ascii get /logfiles/todaylog.txt quit <auto.bat> ftp -s:ftpcmd.txt ここで、質問なのですが、上記のような方法を用い、プロキシサーバー経由でftpを使ったgetを 行うには、どのように行えばいいでしょうか。または、DOSコマンドを使って、行うことは無理な のでしょうか。その場合、ほかにはどのようなやり方が考えられるでしょうか。どなたか、ご助言 いただけませんでしょうか。

  • windows2008でftpをバッチ実行する。

    windows2008サーバーでバッチファイルを作成しftpで複数ファイルを自動転送しようと思います。 今まで(OSはXP)はうまく実行していたのですが、windows2008サーバーではうまくいきません。 ちなみにバッチファイルは @echo off echo ●FTP処理 C:\Windows\System32\ftp.exe -s:d:\ftp\tohost.txt echo on @echo off echo ●終了 tohost.txtの内容は open 192.168.1.1 Uid Pwd bin put d:\ftpdata\a1.txt /afld/a2.txt bye です。 何かwindows2008による特別な方法があるのでしょうか? よろしくお願いいたします。

  • FTP関数について

    FTP関数についての質問です。 自分のHPからFTPを用いてファイルをダウンロードできるように したいため、FTPサーバに接続してファイルをダウンロードさせる ロジックを作ったのですが、うまくいきません。 というのは、私の作ったFTP処理では、サーバ上で実行されるので、 呼び出し元がサーバになり、ファイルはサーバ上にダウンロード されてしまうのです。 そこで質問なのですが、 PHPのFTP関数は、クライアントからプログラムを実行しないと クライアント側にファイルはダウンロードされないのでしょうか?

    • ベストアンサー
    • PHP
  • FTP受信が不調

    Linux側クライアント、PC側サーバの役割でクライアント側からファイルをFTPによりダウンロードします。 64KBのファイルを400msecに一回の繰り返しで数十回受信するとFTPのところでHangUpしてしまいます。 この障害は数回目で発生することもあれば20回無事通り抜けることもあります。  障害の原因がクライアント側なのかサーバ側なのか特定できていません。  クライアント側LinuxのプログラムではFTP受信は専用スレッドを設け、メインと分離していますが、受信スレッドに十分なリソースが配分されないことが原因かなとも思っています。  Windows側はFTP6サーバをコンパネ>『プログラムと機能』で組み込んでいます。 FTPクライアント側:  Linux2.6.18-at9 Debian PowerPC 内部クロック300MHz  メインスレッド側からメッセージキューにより開始信号を受け  system("msh fileRcv.sh file"); により、Winodws側にファイル送信を要求します。 fileRcv.shの内容は: #!/bin/sh HOST_NAME="192.168.1.3" USER="ftp" PASSWORD=NULL ftp -n ${HOST_NAME} >&2 >ftpLog.txt << _EOF_ user ${USER} ${PASSWORD} bin get ${FILE_NAME} bye _EOF_ exit です。  解決には何よりもエラーLOGを取得することが先決ですが ftp -n ${HOST_NAME} >&2 >ftpLog.txt << _EOF_ の記述に問題があるのか、うまくエラーLOGを取得できません。 何とか得られた結果は以下の通りでした: receive aborted waiting for remote to finish abort  この内容では解決にはなりません。  なにか解決のヒントがあればお願いいたします。

  • renameコマンドについて

    FTP先のファイル名を以下のように変更したいです。 rename *.txt *.csv これを実行すると 550 *.txt: The filename, directory name, or volume label syntax is incorrect. となってしまいます。 ワイルドカードは使用できると思っていたのですが、 何がいけないのでしょうか? ちなみに rename 111.txt 111.csv と指定した場合は問題なくできます。 複数のファイルを変換したいので困っています。 環境はWindows2000です。宜しくお願いします。

  • FTP転送中断について

    以下の手順でFTP転送を中断した場合に、直ぐに転送が中断が中断されなくて(セッションがクローズされない)困っています。直ぐに中断できる方法を知っている方、教えてください。 [1]8台のクライアントから同時にFTP転送を要求する。 [2]8台分の転送中に4台でFTPクライアントをSIGKILLで強制終了させる。 [3][2]の直後に4台のFTPクライアントから[1]とは別のデータ転送を要求する。 このときに、2台分のFTPクライアントでNotConnectedとなってしまいます。理由は、SIGKILLでFTPセッションをクローズしようとしたが、クローズしきれずに、8本のセッション+4本のセッションを同時接続しようとして、FTPライセンス数オーバー(8+4>10)により、接続できないようです。 また、調査の結果、SIGKILL時に別クライアントの転送処理が実行されている場合、その転送が完了するまで、SIGKILLをサーバー側で検知してくれません。別クライアントの転送処理が全く実行されていない場合は、SIGKILL直後にサーバー側で即座に転送中断&セッションクローズをしてくれます。 データ転送の有無に因らず、FPTクライアントの転送中断を即座に確実に実行する方法がありましたら教えてください。 とにかくやりたいことは、「8本転送中に、4本を直ぐ止めて、直ぐに別の4本のデータを転送したい」です。 <環境> FTPサーバー(WindowsPC×1台):WindowsXPのIISのFTP *IISのFTPサーバーは最大10本の同時接続が可能。 FTPクライアント(LINUXPC×8台):LINUXのFTPクライアント

  • ftp遅延

    Windows2003サーバーの標準ftpからJP1/ftpサーバーへ、VPNを介して最大2MB程度のファイルを100~200個mput転送しています。2,3ヶ月に1回程度、転送遅延が発生します。Wiresharkでパケットキャプチャして調査したところJP1/FTPからのウインドウサイズが通常時32768バイトから1024バイトになっていました。さらに1024になった後、ftpクライアント側がACK受信後に5秒間waitしてから次のパケットを送信するような動きになっています。計ったように5秒ぴったりです。Windowsのftpクライアントがデータ転送を遅らせるような設定、仕様はないとの認識ですが何が原因として考えられるでしょうか?またどのような調査が有効でしょうか?ちなみにftpクライアント側のPCにはVPNクライアントやアンチウィルスソフトは稼動していません。

専門家に質問してみよう