1つ以上のディレクトリの名前とメディアサイズを入力として取り、tarで使用するファイルのリストを出力するスクリプトを提案できる人はいますか-T
?
scdbackup
/sdvdbackup
ある種のそのようなことが発生しますが、必要ないほど膨らむことがいっぱいです。したがって、基本的に次のようなものを探しています。
./splitTars file1 file2 .... 2.0T
ここではfile
ファイルまたはディレクトリにすることができ、最後のパラメータはメディアサイズ(たとえば2TB)です。次に、大きすぎてメディアに収められないファイルに関する警告とともに、各tarアーカイブのファイルリストを出力する必要があります。
そのような状況が存在しない場合、1つの方法は、検索を使用してファイルのリストを作成し、サイズを拡大または縮小して並べ替え、リストを複数の部分に切り捨てることです。
答え1
私の考えでは、あなたが持っていると思います。バックパックの問題ファイルサイズ。
これは、基本的に、特定のファイルセットから固定サイズのバックアップメディア(バックパック)に収まる最高のファイルセットを見つけることを意味します。その後、表示されたコレクションを使用してtarアーカイブを作成し、ハードドライブまたはフラッシュドライブを使用してローカルコンピュータからファイルを一度に1つずつ転送する必要があります。
あなたのプログラミング技術に基づいてPythonでサンプルソリューションを説明しました。
Pythonスクリプトからすべての入力パラメータを取得し、個々のファイルまたはディレクトリのファイルサイズを見つけます。
du -sm
Pythonが個々のディレクトリのサイズを見つけるために一生懸命働く必要がないように、各ファイルまたはディレクトリ引数でaを呼び出すことができます。メディア制限を超えるコンテンツはすぐに削除されます。
残りをリストに追加し、バックパックアルゴリズムをセット全体に適用します。などのケースが周りにたくさんあります。マイクのソリューションここで。
ラウンド中にバックパックに追加されたアイテムを削除し、残りのリストを持って3段階に戻ります。
リストの残りのすべてのアイテムがバックパックに入るまで、上記の手順3-4-3を繰り返します(つまり、残りのアイテムの合計サイズがメディア制限よりも小さくなります)。
そうする必要があります!
答え2
find
サイズ別にフィルタリングするオプションがあります。
# find file1 file2 .... -size -2000G