Назад | Перейти на главную страницу

Как использовать rsync <3.0 для указания относительного пути загрузки, создания подпапок

Я пишу сценарий, в котором я хотел бы загрузить отдельные файлы и автоматически создать структуру папок, например mkdir -p, но я не могу заставить rsync 2.6.9 (оба) сотрудничать.

Похоже, что rsync создает только один уровень папок, иначе возникает ошибка.

Я пытаюсь воспроизвести под рукой ncftpput -C -R -m remote-host local-path-name remote-path-name действия (Рекурсивный режим ncftp; копирование целых деревьев каталогов + Попытка создать удаленный целевой каталог перед копированием.).

Возможно?

Мои попытки:

rsync -av -e ssh /home/gitrepos/www/board/httpdocs/B/C/delete_snippet.processor.php user@testboard.org:/var/www/vhosts/testboard.org/httpdocs/B/C/delete_snippet.processor.php

возвращает:

rsync: push_dir # 3 "/var/www/vhosts/testboard.org/httpdocs/B/C" не удалось: нет такого файла или каталога (2)

rsync -av -e ssh /home/gitrepos/www/board/httpdocs/B/C/delete_snippet.processor.php user@testboard.org:/var/www/vhosts/testboard.org/httpdocs/

работает, создает httpdocs, но без структуры B / C.

rsync -advR -e ssh -v /home/gitrepos/www/board/httpdocs/B/C/delete_snippet.processor.php user@testboard.org:/var/www/vhosts/testboard.org/httpdocs/

работает, но воссоздает всю структуру / home / gitrepos ... на сервере.

разрешения установлены 777 и принадлежат пользователю.

Спасибо за помощь.

Если вы используете rsync 2.6.7 или новее, вы можете попробовать метод косой черты после httpdocs для ограничения каталогов. Попробуй это:

rsync -advR -e ssh -v /home/gitrepos/www/board/httpdocs/./B/C/delete_snippet.processor.php user@testboard.org:/var/www/vhosts/testboard.org/httpdocs/