Вы также можете использовать ansible для выполнения этого.
ansible -i HOST, -b -m copy -a "src=SRC_FILEPATH dest=DEST_FILEPATH" all
ansible -i HOST, -b -m fetch -a "src=SRC_FILEPATH dest=DEST_FILEPATH flat=yes" all
ПРИМЕЧАНИЕ:
Запятая в синтаксисе -i HOST, не является опечаткой. Это способ использования без необходимости файла инвентаря. -b заставляет действия на сервере выполняться как root. -b расширяется до --become, а по умолчанию --become-user является root, а по умолчанию --become-method является sudo. flat=yes копирует только файл, не копирует весь удаленный путь, ведущий к файлу. Использование подстановочных знаков в пути к файлам не поддерживается этими незаменимыми модулями. Копирование каталога поддерживается модулем copy, но не модулем fetch.Вот пример, который является конкретным и полностью указанным, предполагая, что каталог на вашем локальном хосте, содержащий файлы, которые будут распространены, sourcedir, и что имя удаленной цели - hostname:
cd sourcedir && \
ansible \
--inventory-file hostname, \
--become \
--become-method sudo \
--become-user root \
--module-name copy \
--args "src=. dest=/var/www/" \
all
С кратким вызовом:
cd sourcedir && \
ansible -i hostname, -b -m copy -a "src=. dest=/var/www/" all
PS, я понимаю, что высказывание «просто установите этот сказочный инструмент» является своего рода тон-глухой ответ. Но я считаю, что для администрирования удаленных серверов очень удобно, поэтому установка его, несомненно, принесет вам другие преимущества, помимо развертывания файлов.
Просто удалите «~» и никогда не пытайтесь преобразовать его в ту же папку, используйте Rdxx вместо UDRW как.
hdiutil convert -format Rdxx -o /Volumes/"NO NAME.img" /ubuntu-12.04.3-desktop-amd64.iso
надеюсь, что это сработает.