人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

解決に至った回答には200ポイント差し上げます。
FTPソフトに関する質問です。
フォルダの中に11万のファイルがあり
容量は460MBです。
サーバーを移転するためにこのフォルダをダウンロードしたいのですが、
容量が大きいためかダウンロードすることができません。
使用したソフトは
FFFTP
SmartFTP
の2つです。
FFFTPはタイムアウトの制限を解除し
ダウンロードが完了したと思ったらフォルダの中は空でファイルが1つもありません。
SmartFTPは11.6MBまでダウンロード出来たところで接続が切断されて終わってしまいます。
どうすればこのフォルダをダウンロードすることが出来るでしょうか?
よろしくお願い致します。

●質問者: happy778
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:FFFTP FTP SmartFTP サーバー ソフト
○ 状態 :終了
└ 回答数 : 5/11件

▽最新の回答へ

1 ● yo-kun
●20ポイント

1) エクスプローラを使う方法

エクスプローラでアドレスバーにftp://<ftpサーバ名>と入力してみてください。

ユーザー名とパスワードが聞かれますのでftpのユーザ名とパスワードを入力します。


するとFTPサーバのファイルが通常のローカルファイルのように扱えますので

ダウンロードしたいローカルフォルダにコピーすればOKです。



2) FTPコマンドを使う方法

コマンドプロンプトを起動し

ftp <ftpサーバ名>

と入力してリターンキーを押します。

接続できたらユーザ名とパスワードを入力します。

ログインに成功すると

230 user logged in

という表示が出ます。

あとは目的のフォルダに移動しgetもしくはmgetコマンドでファイルを取得できます。

コマンド操作がわからない場合は

http://www.cc.u-tokai.ac.jp/FAQ/PC/ftp-command/ftp.html

http://www5.plala.or.jp/vaio0630/ftp/ftp.htm

などを参照するとよいと思います。

ファイルを取得し終わったらログアウトします。

FTPサーバの種類によって異なりますが

bye

もしくは

exit

でログアウトできると思います。

◎質問者からの返答

回答ありがとうございます。

タイムアウトになってしまいます。

regegitで上限を延ばしてもタイムアウトになってしまいます。

どうすればいいんでしょうか…


2 ● isogo45
●20ポイント

そのファイル数だとそれらソフトでは不可能です。私も使っていますがファイル数が多いといつもエラーでとまってしまいます。

ファイル数の多いときにいつもやっている方法は、2つです。

1.一旦サーバー上で全てのファイルを圧縮、アーカイブして1つにしたファイルをダウンロードします。アップロードはその逆をします。

sshなどでサーバーにログインできない場合はプログラムを書いてサーバー上で実行します。

tarでもlhaでもどれでも構いません。

2.linuxの機械を1台用意して、コマンドライン上で「lftp」のmirrorコマンドでダウンロードし新しいサーバーにアップロードします

http://q.hatena.ne.jp/answer

◎質問者からの返答

http://www.itmedia.co.jp/bizid/articles/0612/14/news033.html

10MBまでしか一度に圧縮できないみたいですね。

500MBを圧縮できるソフトはありませんでしょうか…


3 ● zzz_1980
●20ポイント

サーバー側のディレクトリ構成がわからないのでうまくできるかわからないのですが、

普通の(cmd.exe)から実行する ftp.exe でサーバーに接続し、

prompt(enter)

cd /nantara

mget *

cd /kantara

mget *

...

でもだめでしょうか。

サーバーが Windows XP Prof/Windows Server で直接操作できるのなら、

430MByte 程度であれば、「プログラム」?「アクセサリ」?「バックアップ」で

移転したいフォルダーをまとめてひとつのファイルにしてから、相手に転送し、

同じ「バックアップ」を使えば何から何までコピーできます。

フォルダを zip 形式にしてしまうのもひとつの手でしょう。

フォルダ共有して単純にエクスプローラーからコピーするのもありかと。

UNIX系なら

転送元で、dump af /dev/xxxx diskdump を実行してから生成された diskdump というファイルを転送し、転送先で restore rf diskdump するか、

tar czf diskdump.tgz /foo/bar 実行後に diskdump.tgz を転送し、転送先で tar xzpf diskdump.tgz

を実行すればいいです。

rsh は今は使えないようにしているところがほとんどだと思いますが、

dump af - /dev/xxxx|rsh "(cd /foo;restore xf -)"

とか

tar cf - /foo/bar|rsh "(cd /;tar pf -)"

であれば中間ファイルなど作らずに一発で移動できます。

P.S.

お使いのプロバイダの転送容量制限に引っかかっていた、なんていうことはないですよね?


4 ● zzz_1980
●20ポイント

フォルダの中に11万のファイル

読み落としておりました。

mget A*[enter]

mget B*[enter]

mget C*[enter]

....

mget 0*[enter]

....

のようにして、正規表現を駆使して一回に転送するファイルの数を何とか減らす工夫が必要ですね。

それから、

dump af - /dev/xxxx|rsh "(cd /foo;restore xf -)"

dump af - /dev/xxxx|rsh hostname "(cd /foo;restore xf -)"

の誤りです。


5 ● isogo45
●20ポイント

tarは普段使用していますが、GB単位でも圧縮アーカイブできます

LHAでも同様だと思います。

http://www.itmedia.co.jp/bizid/articles/0612/14/news033.html

のソフトは使ったことがありませんのでちょっとコメントできないです。

私がご紹介した方法はサーバー内で一旦圧縮アーカイブして、その1つにまとまったファイルをダウンロードする方法です。

リモートで接続しながら圧縮したり、転送したりするとどうしてもネットワークが切れたりした際にとまってしまったりします。どのようなサーバーをご使用になっているのかわかりませんが、シェルでログインできる場合はコマンドライン上で圧縮アーカイブをすればよいです。もし、シェルでログインできない場合は、perlやphpでsystem関数を使ってサーバー上で圧縮させるのが一番手軽です。

ただし、perlなどのプログラムに処理をさせる場合タイムアウトするケースも無くは無いので(2)のlftpというソフトでmirrorコマンドを使うと良いと思います。

Linuxですとほとんどの場合lftpコマンドは標準で付いているのですが、もしwindowsで行う場合は、一旦cygwin(windows上にlinux環境を構築するソフト)をインストールしてその中でlftpコマンドを実行すると良いと思います。

私の知り合いも大量(やはり同じように数万から数十万のファイル)のファイルをダウンロードしたりアップロードする際にいつもストレスがたまっていたようですが、cygwinを入れてlftpの使い方を教えてあげたら快適に作業が出来るようになりました。

この方法であればプログラミングが出来ないけど、ホームページは作れる、ぐらいの方でも簡単に作業が出来ます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ