这是一个关于通过 SSH 在 python 交互模式下工作的命令的问题,但如果包含在脚本中则不会。它快把我逼疯了。我一直遇到脚本问题,但现在我发现我可以简单地将这些行放入 python shell 中,我得到了我期望的确切结果!这让我很困惑,我不知道如何继续,因为我需要它在脚本中工作。对于 python shell,我通过 SSH 登录,然后打开一个 python 脚本,而不是通过 python ssh 模块登录。从那里开始,它完全按预期工作。
import ssh
import gnupg
import pickle
s = ssh.Connection(host = 'ipaddress', username = 'toolserv', password = 'xxxx')
gpg = gnupg.GPG(gnupghome="/home/toolserv/.gnupg")
with open("result1.txt", "r") as my_file:
signed_data1 = pickle.load(my_file)
my_file.close()
print signed_data1
s.close()
如果我从 sudo 执行脚本,我从脚本中得到的错误是:
Traceback (most recent call last):
File "sshx.py", line 11, in <module>
with open("result1.txt", "r") as my_file:
IOError: [Errno 2] No such file or directory: 'result1.txt
ls -ld 给出以下结果: drwxr-xr-x 29 toolserv toolserv 4096 2012-08-19 22:38