我有一个正在远程执行的 python 脚本。该代码的最后一段应该在脚本的目录(远程)中创建一个输出文件,以供进一步报告。
该脚本正在通过 ssh 执行:
ssh -c blowfish remoteAddr python -u pythonScript.py $1 $2 $3
这允许传递到脚本中的参数(我正在使用 bash)成为 python 脚本的输入。
在远程端,我创建输出文件 (.csv) 的尝试被证明是无用的:
csvFile = open('results.csv','w')
csvFile.write(someResults)
csvFile.close()
返回 IOError (Errno 13): Permission denied 'results.csv'。该错误将我的打开标记为罪魁祸首。
在执行ls -l
python 的目录上执行一个,我得到:
-rwxr-xr-x 1 jmschen operations 5003 <dateTimeStamp> pythonScript.py
这让我认为我应该没有访问问题。另外,我尝试了以下方法:
os.chmod(<WherePythonScriptLives>,0777)
csvFile = open("results.csv","w")
csvFile.write(someResults)
csvFile.close()
这也会产生同样的错误。
在本地运行此代码(在 ssh 进入终端后)会产生相同的 IOError;但是,我在目录 (test.py) 中创建了一个 python 脚本
import os
f = open("results.csv","w")
f.write("Blah Blah Blah")
f.close()
工作得很好。这让我觉得我们远程执行 python 的事实可能是问题所在?
要求:
- Unix 上的 Python 2.4.3(无法升级)
- 没有外部模块/包(不是我认为我们需要它们)
无法更改由于 ssh 调用可能是罪魁祸首,因此删除了此要求。ssh -c blowfish remoteAddr python -u pythonScript.py $1 $2 $3
通话