• ベストアンサー

大量のファイルダウンロードで速い方法は?

他所のサーバから、ファイルをダウンロードすることが多々あります。現状では、ネットワークドライブに割り当て、 copy g:\*file1 c:\ これをファイル名を替えて全部バッチファイルに書き出し、実行してます。 ファイル数1万、1個1メガバイト程度。1、2時間です。 もう少し速くなりませんか?こちら側でソフトを使う等は可能ですが、相手側で圧縮して送る等はできません。書き込み不可です。

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

  • ベストアンサー
  • kteds
  • ベストアンサー率42% (1876/4424)
回答No.4

copyコマンドを使っているということはWindowsネットワーク環境なのですね。 W7標準コマンドの robocopyを使ってみてください。 また、Windowsネットワークにこだわらず ftp 転送を検討してはどうでしょうか。 他所とはいえ、サーバならばftp程度は管理できるでしょう。 ftpクライアントはW7標準コマンドで用意されています。 どちらも使い方は添付画像のようにヘルプを参照してください。

over_the_galaxy
質問者

お礼

ありがとうございます。 FTPを忘れてました。robocopyは知りませんが試してみます。

その他の回答 (4)

  • vaidurya
  • ベストアンサー率45% (2714/5983)
回答No.5

まず、第一にそれはダウンロードと言わない。 copyコマンドが使えるなら、それはファイル共有なので コピーはコピーで、ダウンロードではありません。 その上で、ファイル共有の方法、形態がわからないのでは 本来得られるべき速度がわかりません。 現状が、理論上の上限からかけ離れているのか それとも、妥当な速度なのかわからないのでは、どんな努力も徒労に終わるかもしれません。 たとえば、小さいファイルを大量にコピーするのであれば XP時代のSMB1.0では仕様上、速度が芳しくないものでした。 これがVista時代に大幅に改善されていますが… 1MBのファイル群であれば、SMB1.0でも2.0でも大差無いかもしれません。 (このへんを検証したベンチマークを探してみる価値はあるかもしれません) 10000x1MB/1時間で考えると 速度としては、2.8MB/sになります。 2時間かかるなら1.4MB/sで LANの規格で言えば、100BASE-TXとかIEEE802.11gが予想されます。 もうGigabit Ehternetが普及帯まで降りて10年くらい経ちます。 (2004年のビジネス向けノートPCに搭載されていたりします) 有線で、同事業所内であれば、稟議書書いて、設備投資を促すよりほか無いでしょう。 無線LANを介しているなら、IEEE802.11nや最新のIEEE802.11acに切り替えたり 有線に切り替えたり、電波障害の排除、アンテナの延長や配置変更を試みます。 実験的にでもftpを使えるなら ftpでの速度を検証しましょう。 ftpは現在のWindowsネットワークでも基礎に使われるTCP/IPにおいて ファイルトランスファーの専用として作られたプロトコルで シンプルにして、もっとも高速なファイル転送の手段です。 ftpとSMBの間で、転送速度に大きな差があるようであれば SMBの設定の見直しが必要な場合もあります。 100BASE-TXであれば、理論値としては3MB/s台くらいは狙えると思います。 Gigabit Ethernetが導入済みであれば、それが双方で利用されていて ジャンボフレームなどの適切な設定が行われているのか? ケーブルのグレードは適切か?断線は無いか? 経路上に100BASE-TXのハブやルーターが入ったりしていないか? 各所を、充分に確認する必要があると思います。 たとえば、Windows7搭載でも、廉価のノートPCではIEEE802.11nをメインとし 有線LANは100BASE-TXになっているような糞仕様のものがあります。 GbEでありながら2MB/s台は、あきらかに異常です。 GbEで適切な構成であれば、瞬間最大は100MB/sを越え これは40GB程度の古い内蔵HDDや、USB2.0の外付けHDDよりも高速なものとなります。 ですが、相手側がWindows Serverなのか、単なるクライアント用Windowsなのか それとも、低価格のNAS製品か、割高なWSS搭載NAS製品なのかもさっぱりわかりません。 単純にファイル共有のホスト側の性能不足に問題があったとしても不思議ではありません。 それだけ大量のファイルが生成されるのであれば それなりに大量のアクセスが行われている可能性があります。 そういった仕様上の障壁を、当面改善できないのであれば Windowsネットワーク上で、随時同期を行なうほうが 待ち時間の解消という点では効果的かもしれません。

over_the_galaxy
質問者

お礼

ありがとうございます。

  • meg68k
  • ベストアンサー率33% (1133/3386)
回答No.3

おはようございます。 んー、まだ圧縮していないとか、圧縮が効くデータなら、圧縮機能 のあるブラウザ(クロームとか)を使用してみるとか。 http://gigazine.net/news/20140304-data-compression-proxy/ 圧縮されているデータならブラウザより専用ツールの方が早いとは 思いますが、どれくらい早くなるかはなんとも。 ダウンロード先をSSDまたはRAM-DISKにするとか。

over_the_galaxy
質問者

お礼

ありがとうございます。

  • mpascal
  • ベストアンサー率21% (1136/5195)
回答No.2

FastCopy などを使う方法もありですよね。 http://www.vector.co.jp/soft/win95/util/se360695.html

over_the_galaxy
質問者

お礼

ありがとうございます。

noname#218036
noname#218036
回答No.1

こちらでは書き込み速度のより速いSSDを使う。(すでに使ってたら無視) CrystalDiskMarkで書き込み速度を測定できます。

over_the_galaxy
質問者

お礼

ありがとうございます。

関連するQ&A

  • バッチファイルでサーバーのファイルをクライアントへコピーしたい

    サーバーに保存されているファイルを、 クライアントのCドライブへコピーしたい。 各クライアントにバッチファイルを配布して、 それを実行するだけでコピーされるようにしたいのです。 初心者で申し訳ないのですが、何卒よろしくお願いします。 ------------------------ 下記の記述ですと、普通にサーバーのCドライブへファイルがコピーされます。 しかし、コピー先はバッチファイルを実行したクライアントのローカルディレクトリにしたいのです。 copy \\サーバー名\フォルダ名\ファイル名 C:\

  • バッチファイルでのzip形式フォルダへのコピー方法

    非圧縮のファイルをzip形式フォルダへコピーできるのでしょうか?(当方、バッチファイルの勉強中) copy,xcopyで試してみたのですが、コマンドの実行結果はエラーにはなりませんが(コピーできている?)、zip形式フォルダをエクスプローラで内容を確認しようとすると「圧縮フォルダは無効であるか、または壊れています」と表示されます。 copy,xcopyは扱えない?  それともパラメータの指定が必要?  何かのミス? 他に、コマンドがある? 以上、教えて!goo (osはxpsp2を使用)

  • 毎日ある時間ごとに、ファイルを圧縮したい

    Windows 2000 Server を使用しているのですが、毎日ある一定の時間に、フォルダごとファイルを圧縮したいと思っています。 コマンドプロンプトから圧縮できれば、バッチを組み、タスクスケジューラなどから実行できるかなと思っているのですが、何か方法があるでしょうか。

  • ATコマンドでネットワークドライブにファイルをコピーしたいのですが・・・

    お世話になります。 コマンドプロンプトを使用し、ファイルを別のコンピュータにコピーしたいと考えております。 環境: Test1サーバ・・・コピー元:Windows NT4.0 Test2サーバ・・・コピー先:Windows 2000 Server それぞれ別ドメインに属しています。 以下のようなbatファイルを作成しました。 net use X: \\Test2\copyfolder userpassword /user:administrator COPY sourcefile.doc X: net use X: /delete バッチファイルをTest1サーバで実行したところ正常にネットワークドライブ割り当て、ファイルのコピー、ネットワークドライブの切断ができました。 これをatコマンドで以下のようにスケジュール設定したところ、失敗しました。 at 10:00 "c:\temp\netcopy.bat" この問題の回避策を教えてください。 よろしくお願いします。

  • バッチファイルlを2重起動できないようにしたい

    OS:Win XP以上 バッチファイル(.bat)をファイルサーバー上に置き、複数PCから実行可能な状況にしています。 この時、1台のPCがバッチファイルを実行していたら、他のPCからは実行できないように警告を 出すようにしたいのですが、誰かわかる方いませんでしょうか? バッチファイルが実行中(=書き込み禁止状態?)の情報がフラグとして取得できればと思ったのですが、なかなか都合のよいコマンドが見つからず困っています。 よろしくお願いします。

  • 4GB弱のファイル等を日次で自動的に圧縮するバッチファイルを作成したい

    趣味のコーディングをしているのですが、プログラム中で、あるファイルを圧縮する必要が出てきました。 要件は以下の通りです。 1.圧縮対象は、4GB弱のファイルを2つ と、 1GB弱のファイルを1つ と、 50MBのファイルを1つ(must条件) 2.できれば、1.の4つのファイルを1つのファイルにまとめたい(need条件) 3.圧縮の命令は、バッチファイル(~.bat)に記述し、日次で自動実行したい(must条件) ※3.の自動実行については、WinXP標準機能の「タスク」を使ってバッチファイルをキックする予定 4.圧縮後のファイルには何らかのファイル名を指定したい(must条件) いろいろと調べて下記の3つを試したのですが、それぞれに記述した理由でダメでした。 A:zip.vbs ファイルが大きすぎるらしく、上記の4GB弱のファイルを含めて圧縮しようとするとエラーになる。 B:makecab 圧縮後のファイル名を指定できない。 C:lhaz(コマンドライン) コマンドラインから起動したところ、GUIのメニューが出てきてしまい、自動実行できない。 何らかの形で、上記要件を満たす形で圧縮をできないでしょうか。 なお、lhaz(GUI)でzip圧縮を試してみたところ、圧縮後のサイズは900MB程度でした。 また、圧縮形式に拘りはありません。それなりにサイズが小さくなれば、形式はなんでも良いです。 ご回答よろしくお願い致します。

  • ログオンスクリプトが動かない

    ログオンスクリプトが動くように設定してあるのですが、 ログオン時に正常にバッチファイルが実行されている時と バッチファイルが実行されない時があります。 サーバはWindowsNT4.0 SP6です。 クライアントはWindowsXP Proです。 ログオンスクリプトには、ドライブの割り当てのみが 書かれています。 同じネットワークの別のOS(Win98、WinNT WS)では問題なく動作します。 実行されなかった場合、ネットワークから直接バッチファイルを、 実行すると正常にドライブが割り当てられます。 あと、サーバのサービスパックもインストールを もう一度、おこなってみましたが、変化無しでした。 毎回、正常にログオンスクリプトを実行したいので 解決法をご存知の方、ご回答よろしくお願いします。

  • ファイル圧縮

    500MBぐらいのファイルをzipにLhaplusで圧縮したのですがDドライブに圧縮するように指定したら、Dドライブに500MBを圧縮したファイルができたのですが、なぜかCドライブの容量が減ったまま(圧縮中に一時的に保存するために減っている?)のですが、どうすればいいでしょうか?

  • バッチファイルの実行方法

    Windows Server 2003で、Robocopy.exe(Resource KitToolsからインストールしたもの)の連続処理のために、下記のようなバッチファイル(.bat)を用意しました。 robocopy "D:\a" "F:\a" /E /copy:DT /NP /LOG:c:\robocopy.txt /TEE robocopy "D:\b" "F:\b" /E /copy:DT /NP /LOG+:c:\robocopy.txt /TEE .... コマンドの各行は間違っていないようです(cmd.exeに各行を打ち込んで実行すると正常に処理されます)。しかし.batをダブルクリックするとコマンドプロンプト画面内でバッチファイルの1行目がすごい勢いで流れるだけで、処理されません(コマンドプロンプトを強制終了するしかありません)。 最初は.batをダブルクリックすると正常に処理されていたのですが、急にこうなりました。なぜでしょうか? command.comから.batファイルを実行すると正常に処理されます。command.comから実行しないといけないものなのでしょうか? バッチファイルの拡張子を.batにするか、.comにするか関係があるでしょうか?

  • Windows Server 2003 上の実行ファイルをリモートから実行する方法

    運用管理サーバから同じネットワーク内に接続されている Windows Server 2003 上の実行ファイルをリモートで実行したいのですが、できれば標準機能でこれを実現する事はできますか?(ターミナルサービス?rexec?) ここでいう実行ファイルとはバックアップ用のバッチファイル(exe かもしれません)だったりといった小さなツールを想定しています。 運用管理サーバが UNIX(Solaris)の場合と Windows Server 2003 だった場合でそれぞれいい実装案があればご教授頂きたいです(関連 URL の提示くらいのヒントでも構いません) リモート実行したツールがうまく実行できたかどうか(戻り値の取得?)とかネットワーク的なプロトコルはどうなるんだろう・・・とか、そんな細かいところまでまとめて説明しているページがあれば嬉しいのですが・・・