社内システムで、ファイルを定時で転送する仕組みを作ろうとしています(Linux->Linux、Linux->Windows)。FTPの利用を検討していたのですが、FTPは信頼性が低く、途中でデータが落ちたりしても分からないなどという意見がありました。


このように、FTPでファイルを転送している途中でデータの欠落があった場合に検出できない場合などあるのでしょうか。また、上記のような欠落を検出したい場合使うべきファイル転送手順は何でしょうか。(rcpなどならOKなのでしょうか。)

なお、自分でWeb等を調べたのですが、FTPの信頼性問題について触れられているページは見つかりませんでした。TCP/IP上なので、途中でデータが落ちたりすることは当然に分かるような気がしています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/05/04 23:08:35
  • 終了:2006/05/05 09:00:08

ベストアンサー

id:tarepanda777 No.2

tarepanda777回答回数116ベストアンサー獲得回数42006/05/04 23:46:20

ポイント50pt

過去に似たような質問があり、私も回答しているのでご参考にどうぞ。

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

リモートシェルが使えるのであれは、rsync の -c オプションをつければ、送信元と送信先のファイルの整合性を転送時に確認してくれます。整合が合わない場合は再送信も自動で行ってくれるので、回線が途中で切れるといったようなトラブルさえなければ有効に使えるかと思います。

FTPの信頼性について、私の経験では、細い回線(1.5Mbps)で数GB分のファイルを長時間かけて送ったりすると1~2個壊れてたりするような感じですね。重要なファイルには使わないほうがいいです。

id:m10a

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

rsync、知りませんでした。こちらはファイルの転送後チェックまで行ってくれるのですね。

FTPの信頼性について、体験に基づいたコメント大変参考になります。

2006/05/05 08:56:46

その他の回答(2件)

id:monyot No.1

monyo回答回数146ベストアンサー獲得回数182006/05/04 23:20:24

ポイント30pt

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

※URLはダミーです。

FTPの問題点は、何らかの理由で通信が中断してしまったときに、それを知る方法がないという点です。サーバ側では、ファイルの転送が完了しているのか、転送途中で通信が切断されてしまったのかがわかりません。

また、一般的なFTPクライアントでは、通信が中断してしまった際に、それをうまくハンドリングすることができない点も副次的な問題点としてあります。

TCPの機能により、(悪意がなければ)伝送されたデータが改変してしまうことは現実的にはありませんが、ファイル転送が完了しているかどうかの検知はまた別ですので。rcpも同様です。

この問題に対する対処策として通常行われるのは、FTPの範囲であれば、先に転送したいファイルのMD5などの値のファイルを転送しておき、転送完了後に、ファイルの整合性チェックをサーバ側で行うことで、ファイルが完全に転送されたかを判断するといった方法です。

後は、HULFTなどの市販プロダクトを使うとか、SSHのようにセキュリティ上整合性チェックが入ったソフトウェアを用いるかといったところですかね。

id:m10a

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

一般的なFTPクライアントでは通信が中断してしまった際にそれをうまくハンドリングできないんですか・・・。それを補うために転送後にチェックを行うということですね。

2006/05/05 08:58:02
id:tarepanda777 No.2

tarepanda777回答回数116ベストアンサー獲得回数42006/05/04 23:46:20ここでベストアンサー

ポイント50pt

過去に似たような質問があり、私も回答しているのでご参考にどうぞ。

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

リモートシェルが使えるのであれは、rsync の -c オプションをつければ、送信元と送信先のファイルの整合性を転送時に確認してくれます。整合が合わない場合は再送信も自動で行ってくれるので、回線が途中で切れるといったようなトラブルさえなければ有効に使えるかと思います。

FTPの信頼性について、私の経験では、細い回線(1.5Mbps)で数GB分のファイルを長時間かけて送ったりすると1~2個壊れてたりするような感じですね。重要なファイルには使わないほうがいいです。

id:m10a

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

rsync、知りませんでした。こちらはファイルの転送後チェックまで行ってくれるのですね。

FTPの信頼性について、体験に基づいたコメント大変参考になります。

2006/05/05 08:56:46
id:kai10 No.3

kai10回答回数115ベストアンサー獲得回数32006/05/05 03:52:06

ポイント30pt

FTPの信頼性については、特に言及しませんが、isoイメージを落としたけど壊れてた、何て事は良くあります。

転送の方法はいろいろあると思いますが、確実に転送できたことを確認するためには、チェックサムを利用するのが良いと思います。


転送方法は、FTPの他に次のようなものが考えられるかと。とりあえず紹介のみにしておきます。

  • http だたし、ファイル転送ならFTPの方がベターです。
  • scp sshサーバを立てれば使えます。

http://cns-guide.sfc.keio.ac.jp/2004/2/6/2.html

  • nfs NFSでマウントして普通にコピー。

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/367usenfs.html

なお、NFSは、TCPとUDPが使えます。

http://www.linux.or.jp/JF/JFdocs/NFS-HOWTO/performance.html

  • smbmount LinuxからWindowsの共有フォルダをマウントして普通にコピー。

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/605usens.html


#なんだか@ITの回し者みたいになってしまった。

id:m10a

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

md5sumとsha1sum、使えそうですね。

2006/05/05 08:56:26

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません