Я использую компонент Symfony 4 Process для запуска различных команд ssh.Все это работало прошлой осенью и сейчас не работает.
Примерами здесь являются весь реальный код (за исключением удаленного хоста и имени пользователя).Это базовая линия:
<?php
namespace App\Command;
use ...
class TestCommand extends Command
{
public static $defaultName = 'app:test';
public function configure()
{
$this->setDescription( 'Test command for Process problem' );
}
protected function execute( InputInterface $input, OutputInterface $output )
{
$host = 'dpatterson@webhost01.dplhenterprises.com';
$command =
[
// Command, arguments, and options.
];
$process = new Process( $command );
$process->run();
$output->writeln( 'Output: ' . $process->getOutput());
$output->writeln( 'Errors: ' . $process->getErrorOutput());
}
}
В оставшейся части этого поста я представлю значение $ command и выходные данные.
$ command в качестве команды и аргумента вместе:
$command = ['/usr/bin/ssh ' . $host . ' "if [ -d /admin ]; then echo 1; else echo 0; fi"'];
Вывод:
Ошибки: sh: / usr / bin / ssh user@example.com "if [-d / admin]; затем echo 1; еще echo0; fi ": нет такого файла или каталога
sh: строка 0: exec: / usr / bin / ssh user @ example, com" if [-d / admin]; затем echo 1; еще echo 0; fi ": невозможно выполнить: Нет такого файла или каталога
$ команда является отдельной командой и аргументом:
$command =
[
'/usr/bin/ssh',
$host . ' "if [ -d /admin ]; then echo 1; else echo 0; fi"',
];
Процесс "'/ usr/ bin / ssh '' user@example.com "if [-d / admin];затем эхо 1;еще эхо 0;fi "'" превысил тайм-аут 60 секунд. Команда
$ как три отдельных элемента:
$command =
[
'ssh',
$host,
'"if [ -d /admin ]; then echo 1; else echo 0; fi"',
];
Вывод:
Ошибки: bash: if [-d / admin];затем эхо 1;еще эхо 0;fi: нет такого файла или каталога
Опять же, это сработало с первой конфигурацией осенью 2018 года. Я, честно говоря, не знаю, какую версию Symfony я использовал в то время, но я 'Я уверен, что это было как минимум 4.1.
Среда:
- macOS High Sierra 10.13.6
- PHP: 7.2.14
- Symfony 4.2.2
TIA