Подтвердить что ты не робот

Как заставить rsync создавать папку назначения

Пример:

rsync /tmp/fol1/fol2/fol3/foln [email protected]:/tmp/fol1/fol2/fol3/foln

Моя основная проблема: папка /tmp/fol 1 не существует на удаленной машине.

Какие аргументы я могу использовать, чтобы заставить rsync создать это дерево?

4b9b3361

Ответ 1

Сегодня я столкнулся с той же проблемой и нашел решение здесь.

Вы можете:

rsync -avR foo/bar/baz.c remote:/tmp/

или

rsync -avR somedir/./foo/bar/baz.c remote:/tmp/

чтобы создать /tmp/foo/bar/baz.c на удаленном компьютере.

см. раздел --relative/-R man rsync для более подробной информации.

Ответ 2

Один трюк для этого - использовать параметр --rsync-path со следующим значением:

--rsync-path="mkdir -p /tmp/fol1 && rsync"

С помощью --rsync-path вы можете указать, какая программа будет использоваться для запуска rsync на удаленном компьютере и запускается с помощью оболочки.

Ответ 3

Вы можете сделать это через bash и открыть туннель ssh, чтобы структура файла вам понадобилась, а затем rsync данные. Изменятся ли эти временные папки каждый раз, когда эта синхронизация будет выполнена? например, это для каждого дня недели?

ssh [email protected]
mkdir -p tmp/fol1
rsync avz /tmp/fol1/fol2/fol3/foln [email protected]:/tmp/fol1/fol2/fol3/foln
fi