Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将Linux命令从一台机器传递到另一台机器的最佳方式是什么?_Python_Django_Linux_Networking_Raspberry Pi - Fatal编程技术网

Python 将Linux命令从一台机器传递到另一台机器的最佳方式是什么?

Python 将Linux命令从一台机器传递到另一台机器的最佳方式是什么?,python,django,linux,networking,raspberry-pi,Python,Django,Linux,Networking,Raspberry Pi,我的笔记本电脑上有一个Django项目。它在我的机器上运行得很好 此web应用程序以图像的形式接收用户的输入,并读取其中的内容。如果内容已经存在于数据库中,它将在另一台计算机上运行Linux命令。两台机器都连接到同一个网络 目前,我正在使用SSH连接到另一台机器,但它每次都要求输入密码。是否有任何方法可以消除每次运行命令时输入密码的需要?解决方案1:使用SSH预共享密钥通过SSH登录而无需密码。看看如何做。正确配置后,您可以在服务器上运行命令: ssh hostname-or-ip-of-the

我的笔记本电脑上有一个Django项目。它在我的机器上运行得很好

此web应用程序以图像的形式接收用户的输入,并读取其中的内容。如果内容已经存在于数据库中,它将在另一台计算机上运行Linux命令。两台机器都连接到同一个网络


目前,我正在使用SSH连接到另一台机器,但它每次都要求输入密码。是否有任何方法可以消除每次运行命令时输入密码的需要?

解决方案1:使用SSH预共享密钥通过SSH登录而无需密码。看看如何做。正确配置后,您可以在服务器上运行命令:

ssh hostname-or-ip-of-the-raspi command arg1 arg2 ...
并将在Raspberry PI上执行
命令arg1 arg2…
,而不会提示输入密码


解决方案2:使用TCP通信,为Raspberry PI编写服务器,为服务器编写客户端。您可以使用原始套接字,或者一些高级库,例如。

我认为您是一个简单的中级程序员,基于此,我将为您提供两种解决方案及其优缺点

解决方案1:在覆盆子皮上使用简单的烧瓶应用程序

您可以修改以下代码,请求在PI上运行的简单应用程序执行任何操作

代码:

然后,您可以使用覆盆子来调用以下内容:

<your_rasp_ip>:<port>/runMotor
:/runMotor
优点:易于实现,您甚至可以将其进一步移动,以便在防火墙之外使用

缺点:速度慢,不适合非常快速的并发请求。并发性是问题的症结所在(或者您可以将请求排队,然后检查此问题)

解决方案2使用:MQTT是一种机器对机器(M2M)/“物联网”连接协议。它被设计为一种极其轻量级的发布/订阅消息传输

你可以玩你的代码,结帐

优点:MQTT是一种异步消息传递协议,非常轻量级,并消除了并发开销。这最好用于实时系统


缺点:MQTT是一种非常轻的消息传递协议,不能支持重负载。

这个问题不应该在堆栈交换上吗?还请稍微描述一下,您的机器1和机器2是否位于同一路由器后面的同一网络上?然后我可以给你一些帮助。是的,两者都连接到同一个wifi。Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。
<your_rasp_ip>:<port>/runMotor