非常に大きくなる可能性のあるログ ファイルのコレクションを定期的に送信する必要があるため、各ファイルの最後のn行のみを送信したいと考えています。
例えば:
/usr/local/data_store1/file.txt (500 lines)
/usr/local/data_store2/file.txt (800 lines)
という名前の必要なファイルのリストを含むファイルが与えられた場合、files.txt
これらの各ファイルの最後の 100 行を含むアーカイブ (tar または zip) を作成したいと思います。
末尾のファイルを含む別のディレクトリ構造を作成することでこれを行うことができますが、それを達成するために発生する可能性のあるパイプマジックがおそらくある場合、それはリソースの浪費のように思えます. ファイルが異なるディレクトリに同じ名前を持つ可能性があるため、完全なディレクトリ構造も保持する必要があります。
可能であればソリューションをシェルスクリプトにしたいと思いますが、perl (追加モジュールなし) も受け入れられます (これは、ruby/python/etc がインストールされていない Solaris マシン用です)。