2012-04-28 1 views
3

Я хотел сделать инкрементную резервную копию с помощью tar. Я сделал полную резервную копию на 2012-04-08, а затем я хотел создать резервную копию всех файлов, созданных или измененных после этой даты.Есть ли игнорирование tar - опция после даты?

Так что я сделал что-то вроде этого:

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

Через некоторое время я понял, что деготь архивирование файлов, которые я знаю, не изменились с момента последнего резервного копирования. Я проверил даты их модификации, и их не следует включать.

Я coudn't это поверить, так что я сделал небольшой тест:

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/ 

Это ясно, кажется, что смола игнорирует -N, --newer и --after-даты варианты. Он архивировал оба файла, хотя тот, который я назвал OLD, был создан с отметкой времени до 2012 года.

Как я могу помочь себе в этом?

ответ

8

Ваш формат даты должен быть

tar --newer 20120408 

для новых файлов, чем 8 апр 2012. No "-"!

Или вы можете использовать

TWODAYSAGO=`(date --date '2 days ago' --rfc-3339=seconds)` 
tar -cz --newer-mtime="${TWODAYSAGO}" -f bakfile.tgz /dir_to_backup