【发布时间】:2011-07-05 22:12:22
【问题描述】:
echo Something=Something > file
我可以使用 paramiko 的 exec_command 来执行 cat、grep 和 ls,但每当我尝试修改文件时,它什么也不做。在此之前我已经跑过su。该文件与运行命令之前完全相同。
【问题讨论】:
echo Something=Something > file
我可以使用 paramiko 的 exec_command 来执行 cat、grep 和 ls,但每当我尝试修改文件时,它什么也不做。在此之前我已经跑过su。该文件与运行命令之前完全相同。
【问题讨论】:
这是因为您必须为每个 exec_command 调用打开一个新通道。这会丢失 su 命令的身份验证,因为它与特定通道相关联。
你有几个选择。
选项 3 允许将 ssh 与 paramiko 交互使用,保持状态信息不变。这就是 su 命令所需要的。它还允许您围绕您的 shell 连接创建一个 pexpect 类型的包装器,观察标准输出管道以了解事情已经完成的迹象,并且您可以通过标准输入发送其他命令。在您读取数据之前,请注意管道填充和阻塞。
【讨论】: