
私は非常に興味深い観察をしました。これは悪い表現かもしれません。
私のユースケースは次のとおりです
- フォルダをバックアップし、そのフォルダのファイルセットを --exclude-from ファイルに追加します。増分バックアップ(-gオプションセット)を使用しています。
- 新しいマシンで、tarを元のマシンと同じ場所に復元します。新しいシステムにはすでにこの場所にいくつかのファイルがあります。ファイルがあれば交換/上書きしたいと思います。
再現段階
次のようにファイルとフォルダ構造を作成します。
/tmp/src └── etc ├── A.cfg └── config ├── 1.cfg ├── 2.cfg └── 3.cfg
除外ファイルとインクルードファイルの作成
mbp:tarTests jhartman$ cat /tmp/include.cfg /tmp/src/etc/ mbp:tarTests jhartman$ cat /tmp/exclude.cfg /tmp/src/etc/config/*.cfg
プロフィールの作成
$ rm -f /tmp/snapshot $ tar -g /tmp/snapshot -cvz -f /tmp/test.tar.gz -X /tmp/exclude.cfg -T /tmp/include.cfg ./tar-1.27/src/tar: /tmp/src/etc: Directory is new ./tar-1.27/src/tar: /tmp/src/etc/config: Directory is new ./tar-1.27/src/tar: Removing leading `/' from member names /tmp/src/etc/ /tmp/src/etc/config/ /tmp/src/etc/A.cfg
新しいサーバーのアーカイブをキャンセルします。アーカイブ解除前の新しいサーバー上のファイル:
/tmp/src └── etc ├── A.cfg └── config ├── 3.cfg ├── 4.cfg └── 5.cfg
アーカイブ解除(対象コンピュータから)
$TAR_BASE/src/tar --overwrite --extract --force-local --listed-incremental=/dev/null --file /tmp/test.tar.gz -v -C / tmp/src/etc/ tmp/src/etc/config/ ./tar-1.30/src/tar: Deleting ‘tmp/src/etc/config/4.cfg’ ./tar-1.30/src/tar: Deleting ‘tmp/src/etc/config/5.cfg’ tmp/src/etc/A.cfg
したがって、最終的にそのフォルダ内のファイルは次のようになります。
/tmp/src
└── etc
├── A.cfg
└── config
└── 3.cfg
ご覧のとおり、ソースマシンにはあり4.cfg
ません5.cfg
が消えています。これは/tmp/src/etc/config/*.cfg
除外ファイルでの使用によるものだと思います。
この動作はバージョンによって変わるという点に言及する価値があります。 1.30、1.27、1.27.1、1.29 - NOK、1.25、1.26、1.28 - OK(NOKはファイルメッセージに関心のある項目を削除できることを意味します)。
どう思いますか?
ありがとう、ヤリク
アップロード日: 2018-08-21, 20:51
どのバージョンを実行しても、ジョブの--list
結果は同じで、次のように表示されます。Dconfig
フォルダから:
tar --list --incremental --verbose --verbose --file /tmp/test.tar.gz
drwxr-xr-x jhartman/staff 16 2018-08-21 20:44 tmp/src/etc/
Y A.cfg
D config
drwxr-xr-x jhartman/staff 22 2018-08-21 20:44 tmp/src/etc/config/
N 1.cfg
N 2.cfg
N 3.cfg
-rw-r--r-- jhartman/staff 30 2018-08-21 20:44 tmp/src/etc/A.cfg
アップロード日:21:03
ちなみに私がテストに使ったスクリプトはhttps://github.com/jaroslawhartman/tar-tests買い戻し。
output.txt
詳細なテスト結果については参考資料を参照してください。