rsync: как выполнить безопасную двухстороннюю синхронизацию с локальным <-> удаленным webdav?

561
user2734

У меня есть два каталога:

  • /Volumes/webdav/ - смонтированный удаленный диск WebDAV
  • ~/files - локальная копия

Я хотел бы выполнить двухстороннюю синхронизацию (ручную) между ними. Что я делаю:

$ rsync --exclude='.gitconfig' --exclude='*~' --exclude='.DS_Store' -varP ~/files/* /Volumes/webdav/ --delete 

И наоборот (/ Volumes / webdav / * ~ / files /).

Вопросы

  1. Какая разница между ~/files/ /Volumes/webdav/а ~/files/* /Volumes/webdav/? В первом случае я получаю:

    building file list ... 4498 files to consider 

    во втором:

    building file list ... 1382 files to consider ... 
  2. Синхронизация журналов часто показывает что-то вроде:

    building file list ... 4498 files to consider .es/ .es/�\#232а�\#200�\#202а Саи�\#206�\#202а.doc 20480 100% 0.00kB/s 0:00:00 (xfer#1, to-check=4486/4498) .hb/ .hb/25-512.png 39036 100% 5.98MB/s 0:00:00 (xfer#2, to-check=4482/4498) .hb/icon-white-menu.png 1546 100% 1.47MB/s 0:00:00 (xfer#3, to-check=4481/4498) .hb/icon-white.png 26858 100% 0.00kB/s 0:00:00 (xfer#4, to-check=4480/4498) .pt/Untitled/ .pt/session0/ .pt/speed1/ .pt/speed1/Session File Backups/ .var/ .var/DSC_6545.jpg 4595455 100% 92.58MB/s 0:00:00 (xfer#7, to-check=4198/4498) .var/book_edit.pdf ... 

    Итак, rsync показывает некоторый прогресс в передаче файлов, но если я снова запускаю команду, он показывает то же самое - передает те же файлы, проходит по тем же папкам и т. Д. Действительно ли он что-то передает? Если да, то почему каждый раз?

Благодарю.

1
Вы не показываете строку полного запуска. Вы используете `-u`? Является ли разрешение по времени файла на томе назначения, что и у источника? Вы используете `--modify-window`? AFH 7 лет назад 0
Разница между `~ / files /` и `~ / files / *` в том, что вторая не будет включать `~ / files /.*`: `rsync` рекурсия включает в себя все файлы в подкаталоге, включая dot-файлы, но использование `~ / files / *` исключает точечные файлы в рекурсии ~ ~ files / `_before_; точечные файлы из последующих уровней рекурсии _ будут включены. AFH 7 лет назад 0
@AFH спасибо! Я показал полную строку в исходном сообщении: `rsync --exclude = '. Gitconfig' --exclude = '* ~' --exclude = '. DS_Store' -varP ~ / files / * / Volumes / webdav / - -delete` О разрешении времени файла: мне сложно сказать, потому что это сторонний сервер WebDAV. На моей стороне я использую macOS. Кроме того, я попробовал файловый синхронизатор Unison, и он также не работает с `Содержимое файла было изменено во время передачи`, что может указывать на некоторые проблемы с метками времени, я думаю. user2734 7 лет назад 0
Я обычно использую `ls --full-time` для сравнения времени, но мне кажется, что опция не существует в OSX. Другая программа, которая показывает время с разрешением пикосекунды, это `stat`, который вы можете попробовать на любом любом из файлов и его резервной копии. Это скажет вам, если метки времени идентичны, или, если нет, сколько секунд использовать с --modify-window`: 1 или 2 должно быть достаточно. AFH 7 лет назад 0

0 ответов на вопрос

Похожие вопросы