Как запустить файл сценария на удаленном сервере с другого сервера с помощью серверов Digital Ocean через приложение laravel - PullRequest
0 голосов
/ 06 мая 2020

У меня есть приложение laravel на моем сервере, когда происходят определенные действия, он запускает файл сценария оболочки, расположенный по пути /home/user/myFile.sh, я использую Symfony компонентный процесс это ответ с ошибкой Host key verification failed, и пока я запускаю терминал с сервера, он работает отлично. мой вопрос, как я могу передать эту ошибку, чтобы выполнить мой файл через мое приложение.

Этот myFile.sh:

#!/bin/bash
ssh myuser@xx.xx.xx.xx "bash -s" <<'ENDSSH'
/home/user/another_file.sh $1 $2 $3

код внутри laravel app:


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";

1 Ответ

1 голос
/ 06 мая 2020

На это уже есть ответы на AskUbuntu; https://askubuntu.com/a/323629/641754:

Если вы работаете в определенных ситуациях удаленного доступа / сценария, когда вам не хватает интерактивного доступа к ключу приглашения-добавления-хоста, работайте с ним следующим образом:

$ ssh -o StrictHostKeyChecking=no myuser@xx.xx.xx.xx "bash -s" <<'ENDSSH'
...