5

tar で増分バックアップを作成したかったのです。2012 年 4 月 8 日に完全バックアップを作成しましたが、それ以降に作成または変更されたすべてのファイルをバックアップしたいと考えていました。

だから私はこのようなことをしました:

cd /directory/I/wanted/to/back/up
tar --newer 2012-04-08 -cvnf "/backup/dir/$(date +%F).tar"

しばらくして、最後のバックアップ以降に変更されていないことがわかっているファイルを tar がアーカイブしていることに気付きました。変更日を確認しましたが、含まれていないはずです。

信じられないので、ちょっとしたテストをしました。

cd ~
mkdir test
cd test
touch -t 201101010000 OLD
touch NEW
cd ..
tar -N 2012-01-01 -cvf test.tar ./test/*
tar -tf test.tar
ls -o ./test/

tar が -N、--newer、--after-date オプションを無視しているように見えます。OLD という名前のファイルは 2012 年より前のタイムスタンプで作成されていましたが、両方のファイルがアーカイブされています。

どうすればこれで自分を助けることができますか?

4

1 に答える 1

10

日付形式は次のようにする必要があります

tar --newer 20120408

2012年4月8日より新しいファイルの場合。「-」はありません。

またはあなたは使用することができます

TWODAYSAGO=`(date --date '2 days ago' --rfc-3339=seconds)`
tar -cz  --newer-mtime="${TWODAYSAGO}"  -f bakfile.tgz  /dir_to_backup
于 2012-08-30T20:27:56.260 に答える