Linuxでテープを読み書きする簡単なツール

Linuxでテープを読み書きする簡単なツール

テープドライブがいくつかあり、データをテープにバックアップすることにしました(理由の1つは私のデータのほとんどが変更されていないためです)。 。しばらくの間、ハードドライブより少し短く作業する機会)。

私は、これらのバックアップのために独自のデータベースを持つbaculaなどの複雑なソフトウェアではなく、単純なLinuxツールを使用したいと思います。私のユースケースは少し異なるので、これを行うにはスクリプトを自分で作成したいと思います。

tarとcpioがこれに役立ちます。ただし、フォーマットのためにファイルを一覧表示するにはテープ全体を読み取る必要があります(数時間かかる場合があります)、テープの末尾にある単一のファイルを回復するにはテープ全体を再度読み取る必要があります。

LTOテープの書き込み方法(テープに複数回書き込む)により、テープの先頭からすべてのデータを読み取ることなく、アーカイブの末尾にあるファイルを比較的迅速に見つけることができます。

たとえば、次のファイルマークを取得するためにmtを使用すると、ファイルリストを生成するためにアーカイブをtarスキャンするか、アーカイブの末尾から1KBファイルを回復するよりもはるかに少ない時間がかかります。

また、テープの先頭に「目次」を入れて、テープにどのファイルがあり、どこにあるのかを知ることができるはずです。

BackupExecなどのソフトウェアがこれを実行できます。テープを「カタログ」するには短い時間がかかり、テープの最後からファイルを復元するには短い時間がかかります。

ディレクトリでls(またはfind)を実行し、出力をテープに書き込んでから、ディレクトリをテープにtarすることができます。これはリストの問題を解決しますが、tarは最後のファイルを回復するのにまだ時間がかかります。

tarに似ていますが、アーカイブの先頭にファイルリストを作成してファイルの回復を検索するための簡単なツールはありますか?

答え1

勝手にテープをスキップできれば、とにかくコンテンツリストを前に置くことに大きな利点はないと思います。

特定のファイルの検索時間を改善するために、各テープに小さなtarアーカイブを追加します。テープごとに20のアーカイブサブファイルがある場合、バランスは適切です。

私はディスク上の各テープのディレクトリを保持します。各 tar ファイルに対して tar -tvf を持つ各テープのサブディレクトリは次のとおりです。

tar_yyyymmdd_hhmmss_LTO_nnnnn_sub_vv.toc

これは、コンテンツのリストを取得するためにどのテープをロードする必要があるかを知らなくても、コレクション全体のオンライン検索機能を提供します。

追加する予定がない場合は、特定のディレクトリを独自のテープの末尾に保持し、定期的にすべてのディレクトリを別々のテープに保存します。カタログを自分のテープに複数回保管しても問題はありません。メディアの最後に移動してからもう一度1に移動して、いつでも最後のバージョンを見つけることができます。

答え2

1 つのテープに複数の tar アーカイブを保存するために Solaris で QIC テープを使用しました。

物理テープを管理するには、mt(1)コマンドを使用してください。具体的には、絶対または相対番号付けを使用して、前後の間隔でテープマーカーを使用できます。混乱することに、この用語は「ファイル」を使用してテープマークで区切られた複数のサブファイルを表します。完全なtarアーカイブは1つの「ファイル」に対応します。

mtコマンドには、Linux Mint 18.1にバイナリとマニュアルページがあります。テープは非常に非標準です。一部のタイプのテープにはすべてのコマンドは含まれていませんが、テープの表示は非常に基本的です。

標準テープ装置は、基本的に使用前後に巻き戻し機能を実行するため、事前位置決めが全てキャンセルされることが多い。通常、各カルーセルには、/dev/rmt0 などの指定子と、/dev/nrmt0 などの同じ物理デバイス用の追加デバイスがあります。ここで、nは「巻き戻しなし」を意味します。

したがって、次のようなスクリプトに追加のtarコマンドを含めます。

mt -f /dev/nrmt0 rewind
mt -f /dev/nrmt0 eod
tar -f /dev/nrmt0 ...
mt -f /dev/rmt0 offline

どのアーカイブがどのテープにあり、どのサブファイルにあるかをディレクトリに保存する必要があります。検索結果は次のとおりです。

mt -f /dev/nrmt0 rewind
mt -f /dev/nrmt0 fsf 17
tar -f /dev/nrmt0 ...

アーカイブをより小さな複数の部分に分割し、それらの間を移動することは、少数のファイルを検索するための重要な最適化です。

関連情報