Как проще выполнить sh на удаленном сервере через php? PHP скрипт принимает только IP и PASS для подключение через ssh. Так же скрипт генерирует sh файл. Как подключиться по ssh, залить на удаленный сервер файл .sh и его выполнить? Ответ от скрипта должен вернуться в php скрипт. Так же возможен ли вариант для запуска многострочного скрипта через ssh без закачки файла? т.е. построчно читать файл не вариант я думаю.
Для выполнения команды на удаленном сервере через SSH и получения результата можно использовать PHP библиотеку phpseclib. Ниже пример простого скрипта, который позволит вам подключиться к серверу по SSH, выполнить команду и получить результат:
<?php require('Net/SSH2.php'); $ip = 'IP адрес удаленного сервера'; $pass = 'Пароль для подключения по SSH'; $ssh = new Net_SSH2($ip); if (!$ssh->login('root', $pass)) { exit('Невозможно подключиться по SSH'); } $command = 'ваша SSH команда'; $result = $ssh->exec($command); echo $result; ?>
Если необходимо выполнить многострочный скрипт, можно передать его в виде одной строки и запустить через SSH, например:
Для выполнения команды на удаленном сервере через SSH и получения результата можно использовать PHP библиотеку phpseclib. Ниже пример простого скрипта, который позволит вам подключиться к серверу по SSH, выполнить команду и получить результат:
<?phprequire('Net/SSH2.php');
$ip = 'IP адрес удаленного сервера';
$pass = 'Пароль для подключения по SSH';
$ssh = new Net_SSH2($ip);
if (!$ssh->login('root', $pass)) {
exit('Невозможно подключиться по SSH');
}
$command = 'ваша SSH команда';
$result = $ssh->exec($command);
echo $result;
?>
Если необходимо выполнить многострочный скрипт, можно передать его в виде одной строки и запустить через SSH, например:
$script = "строка 1 && \\строка 2 && \\
строка 3";
$result = $ssh->exec($script);
echo $result;
Таким образом, вы сможете подключиться к удаленному серверу по SSH, выполнить команду или скрипт и вернуть результат в PHP скрипт.