Есть несколько различных способов подойти к решению проблемы:
- Wrap программы командной строки
- использовать библиотеку Python, которая предоставляет возможности SSH (например - Paramiko или Twisted Conch)
Каждый подход имеет свои собственные причуды. Вам нужно будет настроить SSH-ключи, чтобы включить учетные записи без пароля, если вы обмениваете системные команды, такие как «ssh», «scp» или «rsync». Вы можете вставлять пароль в сценарий, используя Paramiko или какую-либо другую библиотеку, но вы можете обнаружить, что недостаток документации разочаровывает, особенно если вы не знакомы с основами SSH-соединения (например, обмен ключами, агенты и т. Д.). Вероятно, само собой разумеется, что ключи SSH почти всегда лучше, чем пароли для такого рода вещей.
ПРИМЕЧАНИЕ: его трудно бить rsync, если вы планируете передавать файлы через SSH, особенно если альтернатива - это простой старый scp.
Я использовал Парамико с целью замены системных вызовов, но обнаружил, что обращается к завернутым командам из-за их простоты использования и непосредственного знакомства. Вы можете быть разными. Некоторое время назад я дал Кончу, но это не понравилось мне.
Если вы выбираете путь системного вызова, Python предлагает массив таких параметров, как os.system или команды/подпроцессы. Я бы пошел с модулем подпроцесса при использовании версии 2.4+.
нашли нечто подобное, может у взглянуть http://stackoverflow.com/questions/11009308/copying-logs-in-python-using-the-command-line-function – JJ84 2012-06-13 07:02:23