python - 如何在登录服务器后立即在mac终端执行python脚本编写的命令
问题描述
import os.path
import subprocess
import sys
os.system('sshpass -p password ssh root@esst-warp-d')
subprocess.call('lscpu')
我尝试了上面的代码,但是该命令将在退出服务器后执行。
import os.path
import subprocess
import sys
os.system('sshpass -p password ssh root@esst-warp-d')
ssh root@esst-warp-d "lscpu"
如果我尝试上面的代码,我将在第五行得到语法无效
你能帮我解决问题吗?
解决方案
当你运行os.system("sshpass ...")
它时,它会创建一个与其他任何东西无关的新进程,并sshpass
在其中运行你的命令。然后该过程退出。
当你运行subprocess.call()
它时,它会在你的本地机器上创建一个与上面刚刚退出的进程无关的新进程,并在其中运行你的命令。然后该过程退出。
您实际上想要创建一个连接到远程 Linux 机器的新进程,然后在那里运行一个命令,所以您需要这个:
sshpass -p password ssh root@esst-warp-d '/path/to/lscpu'
在您的终端中尝试。
推荐阅读
- python - 如何展平深度字典;用方括号包围任何子字典键
- pandas - pandas 使用 .loc() 从 df 中选择单个值会产生 df 而不是数字
- java - YouTube 视频活动
- javascript - JavaScript 数组 - 从平面到分层
- swift - 在 prepare segue 中使用 UIButton 的标签
- python - 无法从 dype ('
我正在尝试将日期时间数据从名为“标题”的文件插入到名为“位置”的文件的时间速率。当我使用发布的插值代码时,我得到 TypeError: Cannot cast array data from dtype('
我使用此代码将标题(hdg)日期和时间转换为日期时间
- python - 为大型数据框保存 csv 速度很慢
- reactjs - 带有语法错误的流 API 服务器
- c++ - OpenGL 着色器未从 glVertexAttribPointer() 获取值
- typescript - 无法将属性添加到 passport-linkedin-oauth2 声明文件的接口