
/app/jboss
すべてのファイルとフォルダを除いて、すべてのファイルとフォルダを保持したいと思います。。丸太そして。よく文書。以下のディレクトリ構造が/app/jboss
大きすぎて複雑です。
したがって、以下のサンプルファイルの一部を除外する必要があります。
/app/jboss/standalone/server4/server1.log
/app/jboss/standalone/server7/server1.log_bkp
/app/jboss/audir/diag.log
/app/jboss/standalone/server7/server1.err.gz
/app/jboss/standalone/version1.err
.... etc
可能であれば、私のソリューションがAiX、Solaris、Linuxで実行されることを願っています。それ以外の場合は、問題ごとに異なる解決策があります。
私にとって最高の圧縮.gz
は私が好む圧縮です。
以下のジョンの解決策を試しましたが、うまくいかないようです。
[root@myhost moht_bkp]# find /app/jboss -not -name "*.log*" | cpio -o | gzip > /app/moht_bkp/test.gz
1360843 blocks
[root@myhost moht_bkp]# echo $? 0
[root@myhost moht_bkp]# ls -ltr
total
1097768 -rw-r--r-- 1 root root 562056007 Jul 20 10:45 test.gz
[root@myhost moht_bkp]# gunzip test.gz
[root@myhost moht_bkp]# ls -ltr total 680424 -rw-r--r-- 1 root root 696751616 Jul 20 16:34 test
答え1
これを達成するには、find、cpio、およびgzipを一緒に使用できます。コピー出力モードのcpioは、標準入力からファイルのリストを取得し、標準出力にアーカイブを作成します。圧縮のためにアーカイブをgzipに渡すことができます。
次の例では、拡張子 .err と .log を除くすべてのファイルを検索し、ファイルのリストを cpio に渡し、cpio はアーカイブを gzip に戻します。最後に圧縮されたアーカイブがファイルにリダイレクトされます。
find app/jboss -not -name "*.err" -not -name "*.log" | cpio -o | gzip > /tmp/backup.gz
アーカイブからファイルを抽出するには、gzipファイルの圧縮を標準出力に解凍し、入力モードでcpioにパイプします。
zcat /tmp/backup.gz | cpio -i
CPIOはさまざまなアーカイブ形式をサポートし、出力がすべてのプラットフォームで互換性がある場合は、さまざまな形式オプションを調べることができます。
tarプログラムのGNUバージョンにも同様のオプション-T
(--files-from=FILE
)があります。-
ファイル名としてダッシュ()を使用して、標準入力からファイル名を読み取ることができます。