- ベストアンサー
scpによるデータ転送後、ディレクトリのサイズが変わっている
いつもお世話になっております。昨日アップさせて頂いたのですが、誤ったカテゴリーに投稿していたようなので、再度こちらの方に投稿させて頂きました。 http://okwave.jp/qa5459086.html scpにより、サーバー間でデータの転送を行いました。終わったあとに、簡単なチェックをdu -sm directory's nameで行いました。すると、あるディレクトリは大きく、その他は小さくと容量の変化が見られました。 勝手な思い込みでは、データの容量が小さくなる事はあれど、大きくなることはないものと思っていました(何となくコンパクトに各ディレクトリが収められるからっていうイメージで)。実際、LAN内でバックアップ取った際には、容量が小さくなっている事に気付いていました。 要約しますと、サーバー1のdirectory Aを異なるサーバー2に転送した場合、サーバー2におけるdirectory Aの容量がサーバー1のdirectory Aの容量と異なっているという現象が見られました。 教えていただきたいことは、1)なぜ容量が変化するのか。そもそもこれは問題ないのか。2)コピー後にデータ転送が上手くいったことを調べる方法を教えていただけませんでしょうか。 よろしくお願いいたします。 PS OSはCentOS 5.4です。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
・まず個々のファイルサイズは変わりません。ここで言うファイルサイズとはls -lで表示されるサイズです。 ・ディレクトリのファイルサイズ(ls -ld で表示されるサイズ)は、小さくなることがあります。ディレクトリ内にファイルをたくさん作ってたくさん消した場合など、一旦大きくなったディレクトリファイルサイズは縮まらないからです。コピー先の新規に作ったディレクトリのサイズは必要最小限になるはずです。 ・ファイルが使うディスク上のエリア(ブロック数)は増えることもあるし減ることもあります。これはOSやファイルシステムの状況で異なります。これは、ls -s とかduで示される値です。 >コピー後にデータ転送が上手くいったことを調べる方法 コピー中にエラーが起こればコピーコマンド(scp)がエラーで終了しますので、完了コード($?)を見ればわかります。 相手のサーバーの動きが信用できないなどで念には念を入れるなら、ファイルについてls -lのサイズ一覧を作って比較するんですかね。
その他の回答 (4)
- ishi7474
- ベストアンサー率32% (71/216)
チェックにある程度の時間をかけてもいいようでしたら、sumやcksumコマンドを転送元/転送先のファイルに対して実行し(OSによってアルゴリズムが若干異なるので事前に確認しておきます)、両者のチェックサムが一致することを確認されてはどうですか。
補足
やってみようと思います。ご助言ありがとうございました。
- D-Matsu
- ベストアンサー率45% (1080/2394)
2)の方ですが、転送元で対象をtar等で固めてから転送し、転送先で展開すれば「固めるところで失敗していなければ」完全な転送が出来ているはずです。 これとのdiffを取ってみればわかるのでは? #別にnfsでも構わんですが
補足
ありがとうございます。ご指摘の方法も検討してみようと思います。
- ishi7474
- ベストアンサー率32% (71/216)
OSが分からないのではっきりしたことは言えないのですが、コピー元とコピー先のファイルシステムでブロックサイズ(フラグメントサイズ)が異なれば、duで見たディスク使用量も異なると思います。
補足
ありがとうございます。私もフラグメント化が関係しているのかなと思っていました。 先日のscp以外の経験では、コピー先(分かりやすい表現ありがとうございます)が必ず小さくなっていたので、 整理整頓が上手くいってるんだろうと思い込んでいました。 何かscpとcpで根本的な違いがあるんでしょうか??
- umota
- ベストアンサー率46% (150/324)
1)なぜ容量が変化するのか。 についてだけ。 シンボリックリンクは実体をコピーするので 容量が増えることがあります。
補足
ありがとうございます。私の少ない経験では、コピーされたシンボリックリンクはアクティブでない状況なので(確かシンボリックを保ちながらコピーするコマンドがあったような気もします、それに当たらないのではと思いました。少しチェックしてみます。
補足
ありがとうございます。確かにコピー元のサーバーはFedoraでして、兄弟的なものですが、OSが異なるため今回顕著に見られたのではと思いました。ご助言ありがとうございます。