Чтобы дать представление о моей среде:
У меня 3 машины A, B & C
A = веб-сервер, работающий на веб-сайте php, который в основном выступает в качестве интерфейса для B & C
B = Linux Ubuntu, у меня есть root-доступ, SSH и все необходимое для работы на машине через SSH-клиент (у меня есть файл закрытого ключа .ppk для этого сервера)
C = сервер базы данных MySql, работающий на Linux
Я могу успешно выполнять запросы от A (php) на C (Mysql) и возвращать результаты. Но теперь я пытаюсь выполнить команды linux на B от A.
Например.
У меня есть сценарий, который работает на B и хотел бы выполнить команду из A (php), чтобы показать статус скрипта.
В командной строке сделать это легко – ./SomeScript status
Но я хочу показать статус этого скрипта на веб-сайте im hosting на сервере A.
Даже просто проверьте время работы сервера B на сервере A.
Это в любом случае возможно. У меня есть googled навсегда, как кажется, но я не получаю нигде, Im не слишком поэтапно, если соединение безопасно или нет, поскольку это закрытая сеть без внешнего доступа к этой сети.
Любые рекомендации будут высоко оценены.
благодаря
Выполнить SSH-команды через PHP на сервере A на сервер B.
Вот как запустить команды ssh с командной строкой в Linux: http://www.youtube.com/watch?NR=1&feature=fvwp&v=YLqqdQZHzsU
Для запуска команд в Linux с помощью PHP используйте команду exec () .
Надеюсь, это заставит вас начать искать в правильном направлении.
Посмотрите на эти два сообщения для автоматизации запроса пароля
Вот краткий пример с нерабочим кодом, который заставит вас думать:
<?php $server = "serverB.example.org"; //ip address will work too ie 192.168.254.254 just make sure this is your public ip address not private as is the example //specify your username $username = "root"; //select port to use for SSH $port = "22"; //command that will be run on server B $command = "uptime"; //form full command with ssh and command, you will need to use links above for auto authentication help $cmd_string = "ssh -p ".$port." ".$username."@".$server." ".$command; //this will run the above command on server A (localhost of the php file) exec($cmd_string, $output); //return the output to the browser //This will output the uptime for server B on page on server A echo '<pre>'; print_r($output); echo '</pre>'; ?>
Рекомендуемый поток – запустить команду на сервере A на SSH на сервер B