• ベストアンサー

ftpコマンドで丸ごとダウンロード

ftpコマンドでWebのドキュメントルートごとgetはできませんか? getで1ファイル落とせます。 mgetでカレントのファイルを全て落とせます。 それだけでなく、 ディレクトリを丸ごとダウンロードしたいのですが、それはftpのコマンドでは無理なのでしょうか? いろいろ検索してみました。 下記のような情報はあります。 http://sasuke.main.jp/ftpcommand.html でも、ディレクトリ毎落とせるのかどうかイマイチわかりません。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.3

手動で、都度lsやgetコマンドを入れれば可能ですよね。 つまり、プログラムでftpを制御してlsの結果を解析し、プログラムでgetコマンドを生成して入力すれば可能です。 ftpのクライアントコマンド単体では無理です。 GUIのftpクライアントだと、GUIでフォルダーをドラッグすればそういうことを自動的にやってくれたりします。コマンドラインだとwgetというプログラムでも出来ます。 昔は、ftpサーバー側でディレクトリをまとめてくれて1ファイルにしてくれるものもありましたが、最近は見かけません。

webuser
質問者

お礼

有難うございます。 >コマンドラインだとwgetというプログラムでも出来ます。 もしかしたら、やりたかった事はコレかもしれません。 wget -r ftp://ユーザー:パスワード@サーバー/ディレクトリ で、やってみたところ、概ね希望通りの結果が得られました。

その他の回答 (2)

  • NNori
  • ベストアンサー率22% (377/1669)
回答No.2

古いプロトコルなので、そこまで考えてないと思う。 mget */* とやると第2階層を全部できたかも。(最近やってないからなぁ) で、こういうときは tar でファイルをまとめてからftp でGET して tar で戻すというのが UNIXの常套手段だと思います。 UNIXはリンクが柔軟につけられるので、下手に階層構造を取ると循環してとんでもないことに なることがあるので、tar でまとめるのです。

webuser
質問者

お礼

有難うございます。 mget */* は、上手く行きませんでした。 >こういうときは tar でファイルをまとめてから なるほど、と思いましたが、 tarは向こう側でコマンド発行しないといけませんよね。 step1:向こう側でtarコマンドで一まとめに step2:こっち側からftpで繋いでget 確かに大容量になると通信効率は良いと思いますので、工夫すれば何かに使えそうではあります。 向こう側でtarコマンド使えるぐらいなら、 向こう側から、こっち側にftpするとか、 リモートコピーするとかもできそうですが、 向こう側でtarコマンド使うのは結構なハードルの高さでもあります。

回答No.1

可能ですよ、そのFTPサーバーのIDとパスワードを持っていればの話ですが。 自分のじゃないから持ってないという事であれば、泥棒しようという事ですか?通常プロテクトされているので無理です。まさかファイルを解放したままなんてありえません、レンタルサーバーで使っている人が解放しようとしても、サバーの管理側が、他の人への影響(外からの攻撃拠点にされるため)強制的にやらせないでしょう。 貴方の参照にされているURLにもユーザー名(ID)とパスワードとあるでしょう、本人確認が出来なければ無理な話です、本人確認が出来れば読み書きは自由ですよ。 ホームページでデーターの入れ替えなどFTPとエクスプローラ間でコピペしてますから。

webuser
質問者

お礼

?

関連するQ&A

  • バッチファイルからftpコマンドを使って不特定のファイルをダウンロードしたい。

    バッチファイル上のftpコマンドを使ってftpサーバーにあるカレントディレクトリー以下のファイルを一切合切ダウンロードしたいのですが、なんかいい方法ありませんか?   ↓ここをなんとかしたいのですが   dir|mget ※[]は各設定を入れる ↓バッチファイル ----------------------------------- ftp open [127.0.0.1] [User] [Password] dir | mget by --------------------------------

  • FTPコマンドについて

    OSは2000Serverを使っています。コマンドプロンプトから入力するFTPコマンドにつき、二つ質問があります。 (1)ローカル(自分の端末)のあるディレクトリ配下すべてのディレクトリ・フォルダまるごとをFTPでアップロードしたい際、コマンドでなんと入力すればよろしいですか? (mput *ではすべてのファイルを転送するもののディレクトリは転送しないためmkdirでディレクトリを作成し、それぞれにmputするということしかできないのでしょうか?) (2)ログインするとC:に自分がいます。!dirでC直下のディレクトリを見るとたくさんありますが中でもDocuments and SettingsとProgram Filesについてはlcdで場所を移動できません。デスクトップにあるファイルを転送したいときなど、Documents and Settingsの下にいく必要がありますがどうすれば移動できますか?

  • FTPコマンド mgetでとまってしまう

    コマンドプロンプト画面から open www.foo.or.jp funfun abcdefg cd test cd csv lcd C:\test prompt mget *.csv このように打ち込んでいるんですが mget *.csv でとまってしまいます mget * でも駄目です そこまではうまくいくのですが・・・ パソコンによって、mgetコマンドが不可能とかありますか? それともFTPのバージョンなどあるんでしょうか?? よろしくお願いします。

  • ftpのmgetコマンドの自分の格納場所の指定方法は?

    先日、ftpコマンドについてこのサイトで色々教えていただき感謝しております。 複数のファイルを受信するのにmgetコマンドを教えていただいたのですが、 相手より受信した場所の格納場所の指定が上手くいきません。 先方にFTPとしてログインでき、"PROMPT"→"MGET *"と行うのですが、受信したファイルの格納場所がCドライブの直下になってしまいます。 自分のインターネットサービスマネージャーの ルートは別のフォルダに設定してあるのですが、これは受信したデータの初期値にはならないのでしょうか? また、調べたところ省略すると、ワーキングディレクトリに作成されるみたいにかかれていましたが、ワーキングディレクトリはどこかで指定できるのでしょうか? たとえばC:\AAAに受信したファイルを格納したい場合はどうやって書けばよいでしょうか? MGET * C:\AAA見たいに色々試して見ましたが、駄目でした。

  • ftpでファイル追加バックアップ

    ftpを利用してファイルのバックアップをしたいです。 リモート側はファイルがどんどん溜まっていきます(日に数10ファイル)。 ローカル側で同じディレクトリ内に1日1回 mget *.* でgetしてきたいのですが、普通にやると、 過去にgetしたファイルも改めて上書きでgetしてきてしまいます。 ローカルにあるファイル名とリモートにあるファイル名を見極めてローカルにあるファイル名の ファイルはgetしてこないコマンドはありませんか?

  • ftpのコマンド詳細をお教えください。

    「UNIXファイルサーバ内のデータ群」を「Win2000ProのDISK内」に、PC側の操作(FTP)で持ってこようと思います。FTPは出来るのですが、UNIXファイルのあるディレクトリ以下をすべて(子、孫ディレクトリを含めて(穴を掘って))持ってきたいのですが、ftpでサーバに入ってから prompt bin mget * とすると、直下のファイルと、その子は取ってこれます。でも孫以下のディレクトリ以下が持ってこれません。どのようにすれば可能でしょうか? また、持ってこれた子ファイルは、PC内の同一フォルダに一斉に落ちるため(フォルダを生成してくれない)ファイル名が重複している場合こまります。 PC側にも、元と同じようなディレクトリ構成で持ってくるにはどのようにすればいいでしょうか?

  • ftpコマンド

    ftpコマンドを実行してファイルをgetするとgetしたファイルサイズと相手のマシンとの距離で転送速度に関係してくるのでしょうか。

  • 複数ファイルのダウンロードを自動化したい

    windows端末のDOSプロンプトからFTPコマンドで複数ファイルを ダウンロードしようとしています FTP>mget bak*.*  ↑ 上記のようにして、 サーバ側にあるbakのつくファイルをmgetコマンドを利用してダウンロード させたいのですが 複数あるファイルのひとつひとつのファイルに対してダウンロードするか 否かを聞いてきます 最終的にはバッチファイルにして、自動ダウンロードにしたいので 人手を介しないようにするために何かいい方法はないでしょうか? お知恵を拝借したいと思います よろしくお願いします。

  • ftpコマンドでディレクトリごとPUTやGETってできますか?

    ftpコマンドでディレクトリごとPUTやGETってできますか?

  • ftp処理でmove(移動)を行いたい

    バッチ処理でデータをftp受信しています。 --------------------------- ユーザ名 パスワード prompt mget abc*.log mdelete abc*.log bye --------------------------- このようなコマンドを行っています。 ftpサーバにはさまざまなファイルが随時生成されます。 この処理では定期的に abcで始まる全てのログファイルをgetし、 abcで始まる全てのログファイルをdeleteしています。 ところが、abcで始まるファイルの生成がランダムのため、 偶然mgetが終わった後でファイルが生成され、 mdeleteを行うと、getしていないファイルまで削除される恐れがあるのです。 そのため、一件ずつ移動を行いたいのですが、 調べてもmoveのようなコマンドがftpで見当たらないのですが なにか、moveに置き換わるような処理はないでしょうか? *windows同士の通信です。