2012-05-31 3 views
1

У меня есть следующий Rsync сценарий, который я создал, чтобы сделать дополнительные резервные копии:Почему мой скрипт rsync выполняет полную резервную копию каждый раз?

rsync -arv --exclude-from '/usr/bin/exclude-list.txt' --delete /Volumes/DOCS/ /Volumes/BKUP1/DOCS/ 
&& rsync -arv --delete /Volumes/Webserver/ /Volumes/BKUP1/Webserver/ 

Мой список исключений является

/Volumes/Webserver/.Spotlight-V100 
/Volumes/Webserver/.Trashes 
/Volumes/Webserver/.fseventsd 

Everytime я бегу из этой резервной копии. Кажется, что он проходит и копирует все файлы каждый раз, несмотря на то, что rsync должен быть инкрементным решением для резервного копирования.

E.G. Первый запуск:

.... 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/prop-base/ 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/props/ 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/text-base/ 
.... 

Второй запуск:

.... 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/prop-base/ 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/props/ 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/text-base/ 
.... 
etc... 

Те же файлы копируются снова. Кроме того, я постоянно встречая следующее разрешение отрицала ошибки, несмотря на то, что они игнорируются в моем excude-от аргумента:

building file list ... rsync: opendir "/Volumes/Webserver/.Spotlight-V100" failed: Permission denied (13) 
rsync: opendir "/Volumes/Webserver/.Trashes" failed: Permission denied (13) 
rsync: opendir "/Volumes/Webserver/.fseventsd" failed: Permission denied (13) 

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

Большое спасибо в продвинутом виде.

ответ

2

Я сам это понял. Лучшее, что я мог придумать, так глупо, как это звучит, заключается в том, что временные метки файлов не сохраняются. Затем, когда вы делаете это снова, он думает: «Эй, эти временные метки не совпадают, лучше синхронизировать их!» Если вы используете опцию -t, она отправит отметки времени, тогда файлы будут считаться одинаковыми.

Или вы можете использовать опцию «только размер», которая делает то, что звучит, если вы уверены нет файлов, которые вы изменили, но имеют одинаковый размер.

0

Вы копируете диск FAT32 с другого диска? Мое понимание заключается в том, что FAT32 сохраняет 16-битную метку времени, которая разрешает разрешение около двух секунд, что гораздо менее точно, чем другие форматы дисков. По умолчанию rsync требует, чтобы метки времени соответствовали точно, поэтому практически каждый файл не сможет выполнить этот тест и будет восстановлен.

Чтобы исправить это, вам необходимо иметь rsync для передачи файлов с отметкой времени +/- 1 секунду (2-секундный общий диапазон) из источника. Вы делаете это, добавляя

--modify-window=1 

в команду rsync.

Смежные вопросы