[英]ssh through python script
這就是我的python腳本的樣子
import os
command = 'ssh testServer'
os.system(command)
它給了我以下錯誤
[Sun Aug 17 11:07:30 Adam@testServer:~/] $ python test.py
ld.so.1: ssh: fatal: relocation error: file /usr/bin/ssh: symbol SUNWcry_installed: referenced symbol not found
Killed
當我從命令行執行ssh命令時,它可以正常工作。 只有當我使用os / subprocess模塊從python腳本中嘗試它時,它才會抱怨上面的錯誤。
您不應使用os.system
,而應使用子 os.system
:
就像您的情況一樣:
bshCmd = "ssh testServer"
import subprocess
process = subprocess.Popen(bshCmd.split(), stdout=subprocess.PIPE)
output = process.communicate()[0]
請讓我知道,如果你有任何問題!
os.system有很多問題,子進程是執行unix命令的更好方法。 使用此食譜:
import subprocess
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
您是否考慮過使用ssh自動化程序包? 像https://pypi.python.org/pypi/ssh/1.7.8之類的東西
因此,您的ssh依賴於位於/ opt / svn / current / lib中的庫:“ libz.so.1 => / opt / svn / current / lib / libz.so.1 libz.so.1(SUNW_1。 1)”。 它通過查看環境變量LD_LIBRARY_PATH
找到該庫。 python中的os.system調用未保留此變量。
import os
import subprocess
command = 'ssh testServer'
subprocess.Popen(command, shell=True, env=os.environ)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.