rsync: создать целевой каталог на сервере через ssh-туннель?

#rsync #ssh-tunnel

#rsync #ssh-туннель

Вопрос:

При использовании rsync можно создать целевой каталог на сервере, используя трюк —rsync-path следующим образом:

 rsync -av -e "ssh" --rsync-path "mkdir -p /home/user/new/new amp;amp; rsync" ./file.txt  user@10.0.2.60:/home/user/new/new
  

Однако, похоже, это не работает при использовании ssh-туннеля. Следующая команда просто зависает:

 rsync -av -e "ssh -A user@10.0.2.61 ssh" --rsync-path "mkdir -p /home/user/new/new amp;amp; rsync" ./file.txt  user@10.0.2.60:/home/user
  

Я убедился, что последняя команда работает, если я удалю аргумент —rsync-path и создам каталог вручную на целевом устройстве. Но как заставить rsync создать недостающий каталог при использовании ssh-туннелирования?

Ответ №1:

Удалось решить эту проблему. Команда внутри —rsync-path должна быть заключена в кавычки другого уровня:

 rsync -av -e "ssh -A user@10.0.2.61 ssh" --rsync-path "'mkdir -p /home/user/new/new amp;amp; rsync'" ./file.txt  user@10.0.2.60:/home/user