Рекурсивная загрузка на WebDav сервер с помощью cadaver

Для рекурсивной загрузки файлов на сервер Webdav (например Yandex.Disk) с помощью cadaver нашел скрипт davcpy.sh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh

usage () { echo "$0 <src> <cadaver-args>*" >/dev/stderr; }
error () { echo "$1" >/dev/stderr; usage; exit 1; }

test $# '<' 3 || \
    error "Source and cadaver arguments expected!";

src="$1"; shift;
test -r "$src" || \
    error "Source argument should be a readable file or directory!";

cd "$(dirname "$src")";
src="$(basename "$src")";
root="$(pwd)";
rc="$(mktemp)";
{
    find "$src" '(' -type d -a -readable ')' \
    -printf 'mkcol "%p"\n';
    find "$src" '(' -type f -a -readable ')' \
    -printf 'cd "%h"\nlcd "%h"\n'            \
    -printf 'mput "%f"\n'                    \
    -printf 'cd -\nlcd "'"$root"'"\n';
    echo "quit";
} > "$rc";

cadaver -r "$rc" "$@";
rm -f "$rc";

Примет использования:

1
# ./davcpy.sh /home/metahome/Pictures https://webdav.yandex.ru

Если на компьютере/сервере доступна fuse, можно воспользоваться davfs2



Запись опубликована в рубрике Скрипты с метками , , . Добавьте в закладки постоянную ссылку.


Поделиться с друзьями




Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *