Как заставить rsync создавать папку назначения
Пример:
rsync /tmp/fol1/fol2/fol3/foln [email protected]:/tmp/fol1/fol2/fol3/foln
Моя основная проблема: папка /tmp/fol 1 не существует на удаленной машине.
Какие аргументы я могу использовать, чтобы заставить rsync создать это дерево?
Ответы
Ответ 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