python - 有没有办法通过 ssh 将 Python psutil 模块发送到没有互联网访问权限的计算机?

标签 python linux ssh packaging psutil

我正在制作一个远程 Linux 工件收集脚本,并且想使用 psutil 模块,因为它包含许多方便的函数,重写起来会很痛苦。

问题是,这将在其上运行的计算机不一定连接到互联网。有没有办法通过 ssh 发送模块以便我可以远程使用它?

最佳答案

我在我的个人机器上试过这个,没有 SSH 部分。但是,为了完整性和易用性,我将详细说明如何使用 scp 将其上传到另一台设备。因此,您可能会遇到一些我没有遇到的错误。您已收到警告。

第 1 步:下载 psutil

在安装了 pip 的机器上,使用以下命令下载 psutil 包:

pip download psutil

使用 ls(在 Linux 上)我们可以看到我们现在在当前目录中有一个 *.tar.gz 文件。在撰写本文时,当前 psutil 版本为 5.6.3,因此文件名为“psutil-5.6.3.tar.gz”

第 2 步:将文件上传到所需的设备

确保您和目标设备都连接到同一个 LAN,并且您知道目标设备的 IP 地址。我将此 IP 地址表示为“W.X.Y.Z”。

要使用 SSH 上传文件,请运行:

scp /path/to/*.tar.gz username@W.X.Y.Z:/desired/path/to/*.tar.gz

如果您有 SSH key 并想使用它登录,请使用 -i 标志传递它:

scp -i /path/to/ssh/key/file /path/to/*.tar.gz username@W.X.Y.Z:/desired/path/to/*.tar.gz

第 3 步:通过 SSH 连接到所需设备

这一步非常简单,但我把它作为自己的一步,因为如果您不知道自己在做什么,很容易出错。

通过 SSH 连接到您将文件上传到的设备:

ssh username@W.X.Y.Z

如果您没有 SSH key ,或者它不在 SSH 期望的位置,您可能需要提供密码。

第四步:安装我们刚刚上传的包

现在只需安装包!

pip install /path/to/*.tar.gz

如果您收到一条错误消息:

ERROR: Cannot uninstall 'psutil'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

那么你应该已经安装了 psutil。您可以通过运行来检查:

pip list | grep '^psutil'

在您尝试安装包的机器上。

编辑

此外,如果您的 Python 脚本使用的是 Python 3 而不是 Python 2(应该是,因为 Python 2 的生命周期结束日期是 2020 年 1 月 1 日),请将我刚刚使用的所有地方替换为 pip pip3.

关于python - 有没有办法通过 ssh 将 Python psutil 模块发送到没有互联网访问权限的计算机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57679609/

相关文章:

python - 大型文本文件中的超快速正则表达式匹配

python - 取消 NumPy 内存映射的映射

linux - 不同命名空间中的套接字对应的文件描述符是否分配了相同的数值?

linux - bash 通过 ssh 连接列出 postgresql 数据库

mysql - 每 1 小时自动通过 SSH 隧道对远程 mysql 服务器运行一次 select 语句

python - 如何使用 python 在新数据框中复制当前行和下一行值?

python - 在 Python 中围绕指定原点旋转二维图像

linux - bash: && 运算符行为

linux - 在 Linux 中检查目录内容的脚本

mysql - 通过ssh进行SQL查询?