私は.txtを使用してあるサーバーから別のサーバーにファイルをコピーしますrsync
。測定フォルダファイルのバイトサイズがdu -sb <folder>
31,755,289,904バイトから31,755,505,579に増加しました。
どうやってこれが起こったのかわかりません。
どちらのサーバーもCentOS Linuxバージョン7.3.1611(コア)です。
助けてください。
答え1
前の質問を引用します。ls -lとdu-shのファイルサイズの違いは何ですかしかし、要約すると、次のようになります。
du
ファイルシステム内のファイルが占めるスペースの量を測定します。ファイルシステムは1kバイトの「ブロック」でファイルスペースを割り当てますが、非常に大きなディスクではブロックサイズが大きくなる可能性があります。
したがって、数百KBのファイルはls -l
ファイルシステムの完全なブロックを使用します。ブロックは他のファイルと「共有」することはできないため、ブロックの合計サイズはそのファイルに対して表として作成されますdu
。 ls -l
ファイルの内容に使用されたバイト数を報告し、ブロックで未使用の追加スペースを無視します。
従来、Linuxファイルシステムは、最大数テラバイトサイズのほとんどのディスクに1KB(1024バイト)ブロックを使用していました。より大きなディスク(4TB以上)では、ファイルシステムブロックは通常4KBです。 ls -l
ファイルサイズは数百KBに見えるかもしれませんが、ディスクは1ブロック(1KB)を使ってdu
それを示しています。他のサーバーでディスクがはるかに大きい場合、ファイルはまだスペースブロックを消費しますが、ブロックは4 KB / 4096バイトです。
他のすべては2つのサーバー間で同じかもしれませんが、ファイルを保持するファイルシステムがサーバー上で異なるブロックサイズを持つ場合、コマンドはファイルがファイルシステム内du
の異なるスペースを占有していると報告します。