rsync. Синхронизация по дате изменения файла. Как?

Всем привет!

Необходимо синхронизировать директории(с данными) между двумя идентичными по функциям серверами(s1 & s2), на основании атрибута "дата изменения". ФС на обоих серверах - XFS.

Чего делаю:

rsync -rlpvgo --delete-excluded --exclude='- *.vob' --exclude='- music/' --exclude='- *.iso' --exclude='- *.avi' /org/  root@s2:/org

Т.е. производится синхронизация файлов с s1 в сторону s2, путём:


-r: копирование рекурсивно, включая субдиректории/файлы
-l: сохраняются символические ссылки, как они есть, вместо попытки "зарекурсировать" их.
-p: сохраняются права(chmod), действующие на файлы
-o: сохраняются данные о владельце файлов
-g: сохраняются данные о группе, принадлежащей файлу
-v: вывод информации о происходящей синхронизации на экран
--delete-excluded: удалять файлы на s2, отсутствующие/удалённые с s1(внутри пути(path) синхронизации)
--exclude='- music/': исключить из синхронизации данных директории, имеющие имя "music". Слеш "/" после имени директории указывает, что фильтруются именно директории, а не файлы.

Теперь самое интересное:
Синхронизация при таких ключах происходит каждый раз заново. Использовал ключ "-t", отвечающий за синхронизацию изменённых файлов, но всё равно тянёт за собой уже синхронизированное.
Использовать ключ "-c" слишком накладно, ибо долго(информации около 97Gb). Каким образом делать синхронизацию по дате изменения?

Ещё в догонку. Как включить в исключения расширения с разным регистром? К примеру:

--exclude='- *.vob'

засинхронизирует файлы только с расширением .vob, но не .VOB.

Никто не сталкивался, ага? :)

Никто не сталкивался, ага? :)

сложно сказать как проверяли

сложно сказать
как проверяли что тянет все заново? может thumbnails просто тащит,
может exclude что-то закрывает, может на отдающей стороне файлы меняются, может modify-window стоит попробовать.

Проверял просто:есть у меня

Проверял просто:
есть у меня maildir'ы на сервере(s1) - /var/mail/
Чего делаю :)

1. В mc выбираю эту директорию, жму SHIFT+F5, название директории - "mail.last", жму "Enter", жду окончания процесса.
2. Затем делаю синхронизацию на второй сервер(s2) через ssh rsync'ом:

rsync -rlpvgot --stats --numeric-ids  --delete-excluded /var/mail.last/ :/var/mail

На s1:

# du -sb /var/mail.last/
7657715370      /var/mail.last/

На s2:

# du -sb /var/mail
7657852972      /var/mail

Ладно, проверим, в чём разница:

На s1:

#(cd /var/mail.last ; find . -type f -print0 | sort -z | xargs --null ls -s ) > /org/shares/admin/s1_mdir

На s2:

#(cd /var/mail ; find . -type f -print0 | sort -z | xargs --null ls -s ) > /mnt/admin/s2_mdir
# diff s1_mdir s2_mdir
2447c2447
<    60 ./mail-tsk/.INBOX.uuu/dovecot.index.cache
---
>    64 ./mail-tsk/.INBOX.uuu/dovecot.index.cache
2855c2855
<   208 ./mail-tsk/.sent_2008/dovecot.index.cache
---
>   212 ./mail-tsk/.sent_2008/dovecot.index.cache
4390c4390
<    20 ./mail-tsk/.spam/dovecot.index.cache
---
>    64 ./mail-tsk/.spam/dovecot.index.cache
5668c5668
<    20 ./mail-spb/dovecot.index.cache
---
>    64 ./mail-spb/dovecot.index.cache
5678c5678
<    20 ./mail-spb/.Sent/dovecot.index.cache
---
>    64 ./mail-spb/.Sent/dovecot.index.cache
7435c7435
<    28 ./mail-usa/.INBOX.refer/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.refer/dovecot.index.cache
7478c7478
<    32 ./mail-usa/.INBOX.dsk/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.dsk/dovecot.index.cache
7488c7488
<    20 ./mail-usa/.INBOX.g-sh-o/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.g-sh-o/dovecot.index.cache
9053c9053
< 2076 ./mail-usa/.INBOX.inbox_2009/dovecot.index.cache
---
> 2080 ./mail-usa/.INBOX.inbox_2009/dovecot.index.cache
9063c9063
<   20 ./mail-usa/.INBOX.Interesnoe/dovecot.index.cache
---
>   64 ./mail-usa/.INBOX.Interesnoe/dovecot.index.cache
9077c9077
<   24 ./mail-usa/.INBOX.japan/dovecot.index.cache
---
>   64 ./mail-usa/.INBOX.japan/dovecot.index.cache
9120c9120
<   40 ./mail-usa/.INBOX.gra/dovecot.index.cache
---
>   64 ./mail-usa/.INBOX.gra/dovecot.index.cache
9410c9410
<   232 ./mail-usa/.INBOX.usa-toner/dovecot.index.cache
---
>   236 ./mail-usa/.INBOX.usa-toner/dovecot.index.cache
9733c9733
<    48 ./mail-usa/.INBOX.TSA/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.TSA/dovecot.index.cache
9745c9745
<    28 ./mail-usa/.INBOX.Pozdravleniya/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.Pozdravleniya/dovecot.index.cache
10303c10303
<    52 ./mail-usa/.INBOX.Sotrudniki.us1/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.Sotrudniki.us1/dovecot.index.cache
10359c10359
<    52 ./mail-usa/.INBOX.Sotrudniki.us2/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.Sotrudniki.us2/dovecot.index.cache
10373c10373
<    24 ./mail-usa/.INBOX.Sotrudniki.Maks/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.Sotrudniki.Maks/dovecot.index.cache
10471c10471
<    28 ./mail-usa/.INBOX.Sotrudniki.us3/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.Sotrudniki.us3/dovecot.index.cache
10487c10487
<    24 ./mail-usa/.INBOX.Sotrudniki.us4/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.Sotrudniki.us4/dovecot.index.cache
10567c10567
<    60 ./mail-usa/.INBOX.KSA/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.KSA/dovecot.index.cache
10697c10697
<    16 ./mail-usa/.INBOX.Tariff/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.Tariff/dovecot.index.cache
10707c10707
<    20 ./mail-usa/.INBOX.Tender/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.Tender/dovecot.index.cache
10756c10756
<    44 ./mail-usa/.INBOX.TTC/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.TTC/dovecot.index.cache
10763c10763
<    20 ./mail-usa/.INBOX.GBA/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.GBA/dovecot.index.cache
10789c10789
<    28 ./mail-usa/.INBOX.Zavods/dovecot.index.cache
---
>    64 ./mail-usa/.INBOX.Zavods/dovecot.index.cache
16372c16372
<   60 ./mail-japan/.spam/dovecot.index.cache
---
>   64 ./mail-japan/.spam/dovecot.index.cache
17593a17594
> 1332 ./s1_mdir

Почему индексные файлы довекота не идентичны?

Пробовал и с рекомендуемыми параметрами:

rsync -rlpvgotu --stats --numeric-ids --modify-window=1  --delete-excluded /var/mail.last/ :/var/mail

Не помогло

Проверял просто: есть у меня

Проверял просто:
 есть у меня maildir'ы на сервере(s1) - /var/mail/

Нет, конечно если надо рсинк, то я не смогу :).
Если бекап. то именно маилдиры из-под довекота зеркалятся, имхо, проще средствами довекота,фетчмайла, ...

П.С тем более довекот научился вырезать вложения указанного размера и ложить их на фтп

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Да тут вопрос с идентичностью

Да тут вопрос с идентичностью данных почты на втором сервере.
Про бэкап силами dovecot'a - не в курсе.
Через rsync сделал копию - подцепил с клиента эту копию. Работает, кушать не просит.

Тут вопрос о работающей правильно синхронизации данных с сервера s1 на s2.
Т.е. если с возникла проблема с индексными файлами dovecot'a, то возникнуть проблема может и с другими пользовательскими данными(у меня не только maildir'ы рсинкаются).

возможно устрои опция -u,

возможно устрои опция
-u, --update skip files that are newer on the receiver

This forces rsync to skip any files which exist on the destination and have a modified time that is newer than the source file.
(If an existing destination file has a modification time equal to the source file’s, it will be updated if the sizes are differ‐
ent.)

Note that this does not affect the copying of symlinks or other special files. Also, a difference of file format between the
sender and receiver is always considered to be important enough for an update, no matter what date is on the objects. In other
words, if the source has a directory where the destination has a file, the transfer would occur regardless of the timestamps.

This option is a transfer rule, not an exclude, so it doesn’t affect the data that goes into the file-lists, and thus it doesn’t
affect deletions. It just limits the files that the receiver requests to be transferred.

собственно кусок man

--exclude='-

--exclude='- *.((v|V)(o|O)(b|B))'
такикаряво =)

_______________________________________
грех обманывать компиляторы в субботу

Попробуй функцию --backup -

Попробуй функцию --backup - получишь инкрементальное копирование ))) все очень просто

Судя по всему man

Судя по всему man rsync.
Плюшки rsync можно получить ТОЛЬКО при копировании через демон rsync. При копировании через шелл плюшек НЕТ.
Как гласит ман при заливке файлов приемник должен выглядеть так:
а) user@host::dest (два двоеточия)
б) rsync:/user@host[:port]/dest

Согласно того же мана в вашем случае копирование идет через шелл, ибо root@s2:/org . Плюшек нет.

Первое копирование идет несколько медленней, потому что демон должен построить таблицы хэшей. Последующие должны идти без проблем. Обрезка по дате имхо излишество.

А время точно

А время точно синхронизировано?
Разницу не покажете?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".