簡體   English   中英

通過python腳本ssh

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM