Есть ли какой-нибудь скрипт или инструмент командной строки, который позволит мне синхронизировать локальную папку с webdav?

Есть ли какой-нибудь скрипт или инструмент командной строки, который позволит мне синхронизировать локальную папку с webdav?

У меня есть локальная папка, которую я хочу синхронизировать с сервером webdav. В моей папке много файлов, и мне нужно, чтобы после редактирования некоторых файлов или добавления/удаления папок я мог синхронизировать изменения с сервером webdav, игнорируя то, что находится на сервере, и всегда используя мои файлы. Есть ли какой-либо скрипт или инструмент, который я могу использовать из командной строки, чтобы сделать это?

И увеличение ресурса не является решением.

решение1

WebDav-sync — это Java-программа, разработанная для этой цели.http://www.re.be/webdav_sync/index.xhtml

решение2

mkdir /volumes/web_dav/
mount_webdav -s -i https://<web_dav_domain_name:port>/ /volumes/web_dav/

rsync -rvz /your_directory/ /volumes/web_dav/

umount /volumes/web_dav/

решение3

Использование rsync на смонтированном диске webdav может привести к потере эффективности инкрементального резервного копирования. Алгоритм контрольной суммы в rsync заставляет удаленные файлы (полностью или частично) скачиваться и храниться локально, что может привести к потере пропускной способности загрузки.

Неидеальным решением является использование флага "--size-only" для сохранения bw:

rsync -ahvP --size-only /your/source/path /your/webdav_mount/path/

Это не сработает, если файлы будут обновлены, но по-прежнему будут иметь те же размеры.

решение4

Кажется, что быстрым решением для выполнения такой односторонней синхронизации является повторное использование и изменение скрипта, который я предложил в качестве ответа.здесьпросто добавив что-то вроде test -d "$src" && echo "rmcol \"$src\"";сразу после строки с одной открывающейся скобкой.

Обратите внимание, что это подразумевает повторную передачу всего содержимого каждый раз, поэтому используйте этот метод только для «небольших» каталогов; в противном случае решение, прибегающее к монтированию и использованию, rsyncбыло бы гораздо более подходящим.

Связанный контент