Запустите сценарий оболочки, используя ткань и текст сценария конвейера на стандартный ввод оболочки

Есть ли способ выполнить многострочный -сценарий оболочки, перенаправив его на стандартный ввод удаленной оболочки в Fabric ? Или я всегда должен записывать его в удаленную файловую систему, затем запускать, а затем удалять? Мне нравится отправлять на стандартный ввод, так как он позволяет избежать временного файла. Если нет API-интерфейса фабрики (и кажется, что он не основан на моем исследовании ), предположительно, я могу просто использовать модуль sshнапрямую. По сути, я бы хотел, чтобы fabric.api.runне ограничивался 1-строчной командой -, которая передается оболочке в качестве аргумента командной строки, а вместо этого брал бы полный многострочный -скрипт и записывал его на стандартный ввод удаленной оболочки..

Чтобы уточнить, мне нужен тканевый эквивалент этой командной строки:

ssh somehost /bin/sh < /tmp/test.sh

За исключением python, исходный код сценария не будет исходить из файла в локальной файловой системе, это будет просто многострочная строка в памяти. Обратите внимание, что это единственная логическая операция, и на удаленной стороне нет временного файла, а это означает, что непредвиденные сбои и сбои не оставляют потерянных файлов. Если бы в ткани (был такой вариант, о чем я и спрашиваю ),не нужно было бы иметь временный файл с обеих сторон, и для этого потребовалась бы только одна операция ssh.

12
задан Peter Lyons 21 October 2013 в 22:48
поделиться