Я хочу запустить локальный скрипт оболочки с SSH-командами на сервере с использованием PHP. А внутри скрипта я использую ssh
, чтобы выполнить команду типа ls -lart
и сохранить результат в файле журнала на сервере, а затем с помощью scp
скопировать удаленный файл на мой локальный хост. Как то так:
/// my_local_shell.sh
#!/bin/bash
host=$1
user=$2
port=$3
ssh -p $port $user@$host 'ls -lart >> /home/remote/file.log'
scp -P $port $user@$host:/home/remote/file.log /home/local/file.log
Если я запускаю скрипт с помощью терминала user@local_host:~$ ./my_local_shell.sh
, все работает просто отлично. Но если я использую shell_exec()
для выполнения скрипта с использованием PHP, как это:
<code>/// index.php
$output = shell_exec("my_local_shell.sh 192.168.1.1 root 2222");
echo <pre>$output
;
На экране ничего не печатается, и команды SSH внутри файла не выполняются.
Я знаю, что могу использовать ssh2_shell()
, но с его помощью мне пришлось бы отправлять команды внутри PHP, а это не то, что я хочу.
Я уже дал разрешения, необходимые для index.php
и my_local_shell.sh
Есть идеи, как мне это сделать?