Мне интересно, есть ли способ изменить текущий рабочий каталог на удаленном сервере с помощью модулей подпроцесса или pxssh. Целью этого является создание новых каталогов и копирование/вставка файлов. Кроме того, мне было бы полезно знать, есть ли способ сделать это в одном процессе. Выполнение приведенной ниже команды не помогает мне, потому что процесс завершается сразу же после завершения выполнения команды.Изменение рабочего каталога на удаленном месте
import subprocess
p=subprocess.Popen(['ssh', '15.27.23.2','cd /home/incoming'], shell=True)
p.wait()
Кто-нибудь знает, как это сделать? Никакие библиотеки третьей части не должны использоваться. Спасибо за любую помощь.
если вы находитесь на POSIX, тогда не используйте 'shell = True' с аргументом списка; используйте одну строку (команду оболочки) или снимите «shell = True». – jfs
вы можете [использовать 'pexpect' для запуска нескольких команд (обмениваться данными с удаленной оболочкой через ssh)] (http://stackoverflow.com/a/15913906/4279). Или используйте 'paramiko.SFTPClient' для выполнения операций с файлами. – jfs
[пример кода paramiko: загрузить все файлы из удаленной папки - он показывает, как изменить локальные/удаленные каталоги] (http://stackoverflow.com/a/20381739/4279). Вот еще один пример кода paramiko: он показывает, как создавать удаленные каталоги] (http://stackoverflow.com/a/20294079/4279) – jfs