如何通过laravel应用程序使用数字海洋服务器在另一台服务器上的远程服务器上运行脚本文件

问题描述 投票:0回答:1

我在服务器上有一个laravel应用,当发生某些操作时,它运行位于路径/home/user/myFile.sh上的shell脚本文件,我正在使用Symfony component process,它是错误为Host key verification failed的响应,而当我使用终端运行时从服务器可以正常工作。我的问题是如何传递此错误以通过我的应用程序执行文件。

myFile.sh

#!/bin/bash
ssh [email protected] "bash -s" <<'ENDSSH'
/home/user/another_file.sh $1 $2 $3

laravel应用内的代码:


public function do()
{
  $process = new Process(['/home/user/myFile.sh'], null, ['param1', 'param2', 'param3']);
  $process->run();

  if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
  }

   return $process->getOutput();

}

远程服务器上的another_file.sh

#!/bin/bash

p1= $1;
p2= $2;
p3= $3;

echo "script executed successfully";
laravel symfony security networking devops
1个回答
0
投票

这在AskUbuntu上得到了很好的回答; https://askubuntu.com/a/323629/641754

如果您在某些远程/脚本化情况下运行,而您对交互式提示添加主机键缺乏交互访问,请按照以下方法解决:

$ ssh -o StrictHostKeyChecking=no [email protected] "bash -s" <<'ENDSSH'
© www.soinside.com 2019 - 2024. All rights reserved.