在我的家庭网络上,我想从server1远程运行server2上的python脚本。这两台服务器都位于家庭网络中。我需要将文件上传到server2并运行python脚本。 python脚本需要几个小时才能完成,因此我想在server2的屏幕上运行它。我试图用php和一些bash脚本来实现这个。运行ssh -t生成远程屏幕
服务器1上的我的php脚本在同一台服务器上运行bash脚本。 bash脚本使用:[ssh -t user @ server screen'sudo python pyth_script.py']尝试运行server2上的python脚本。请注意,我正在使用-t选项。 bash脚本还有一个scp命令将文件从server1复制到server2。我已经使用密钥来启用从服务器1到服务器2的ssh命令,而不需要密码。
当我从命令行运行bash脚本时,它的功能完美无缺。 server2上的屏幕被激活,python程序在里面运行。我以普通用户的身份运行bash脚本,作为root和www-data(php脚本通过apache运行并且是用户www-data)。在任何用户下,bash脚本在从命令行运行时按预期工作。
当我通过php脚本运行bash脚本(点击一个可以触发php脚本的html表单)时,scp命令正常工作并且文件被传输,但是python脚本不能运行。包含“ssh ... screen ...”的php行的输出返回“必须连接到终端”,但我使用-t选项,正如我所提到的,bash脚本在运行时按预期运行从命令行。
任何想法我做错了什么?
什么是使用Web界面远程运行python脚本的最佳方式?
感谢, RB3