最大50TBのファイルシステムで最も古いファイル/ディレクトリを見つける

最大50TBのファイルシステムで最も古いファイル/ディレクトリを見つける

90TBから50TBの範囲のファイルシステムで、最も古いファイルと関連ディレクトリを見つけて別のファイルシステムに移動する必要があります。ディレクトリ構造はファイルの内容を識別するため、ディレクトリ構造を保存する必要があります。だから -

1級/2級/3級/(文書)

構造です。構造全体を移動する必要があります。最上位ディレクトリには何もありませんが、私が探しているすべてのファイルの名前が同じであるため、そのファイルがないとファイルが何に属しているかを識別できません。プロセスが完了したら、元のファイルシステムに約40 TBを残し、新しいファイルシステムにはほとんど何も残さないはずです。これは、元のファイルシステムで最も古いファイルがそこにあるためです。

ありがとうございます!

ベストアンサー1

GNUツールとツールを使用すると、rsync次のことができます。

export LC_ALL=C # force tools to regard those file paths as arrays
                # of bytes (as they are in effect) and not do fancy
                # sorting (and use English for error/warning messages 
                # as an undesired side effect).

find . -type f -printf '%T@/%s/%p\0' | # print mtime/size/path
  sort -zn | # numerical sort, oldest first
  awk -v RS='\0' -v ORS='\0' -F / -v max=50e12 '
    {total_size += $2}
    total_size > max {exit}
    {
      sub("^[^/]*/[^/]*/", "") # remove mtime/size/
      print # path
    }' |
  rsync -nv -aHAX0 --files-from=- --remove-source-files . /dest/dir/

(テストされていません。-nテスト実行に使用されます。満足すれば削除します。)

%sファイルサイズ(、%bセクタのディスク使用量に置き換え(およびに変更))に基づいて累積ファイルサイズを計算し、total_size += $2 * 512ハードリンクを無視します。これらのファイルがターゲットファイルシステムにコピーされると、これらのファイルとディレクトリには次のものが含まれます。ファイルシステムの圧縮や重複排除がない限り、ファイルは最終的に50TB以上を使用できます。

おすすめ記事