командный файл — Windows | вамп | невозможно выполнить plink.exe из php exec ()

Мне нужно получить доступ к машине Linux из Windows 7 через PHP.

Для этого я создал простую летучую мышь (MyScript.bat) скрипт, содержащий plink.

c:\wamp\www\abc\plink.exe [email protected] -pw l1c -C "df -h">11.txt

Когда я выполняю скрипт bat, он работает нормально, т.е. вывод записывается в файл 11.txt

Но когда я обращаюсь к нему из PHP, 11.txt создается без данных

echo exec('MyScript.bat');

Более того, в браузере команды скрипта отображаются в виде текста. Я даже пытался использовать print_r для отображения.

"c:\wamp\www\abc\plink.exe [email protected] -pw l1c -C "df -h">11.txt

0

Решение

Не запускайте внешний инструмент для SSH.

PHP имеет встроенная поддержка SSH.

Или использовать phpseclib:

require_once("Net/SSH2.php");
require_once("Crypt/RSA.php");

$ssh = new Net_SSH2($hostname);
if ($ssh->login($username, $password))
{
echo $ssh->exec("df -h");
}

Увидеть http://phpseclib.sourceforge.net/ssh/examples.html


В любом случае, если вы хотите использовать Plink, перенаправьте также стандартный вывод ошибок для устранения вашей проблемы:

plink.exe .. dir > 11.txt 2>&1

Увидеть Перенаправить Windows cmd stdout и stderr в один файл.

Вы наверняка пропустите -hostkey переключатель явно указать отпечаток доверенного хост-ключа.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]