Esegui i comandi sulla macchina remota tramite PHP

Per dare uno background al mio ambiente:

Ho 3 macchine A, B & C

A = Webserver, che esegue un sito Web php che funge fondamentalmente da interface per B & C

B = macchina Linux Ubuntu, ho accesso root, SSH e tutta la bontà necessaria per lavorare sulla macchina tramite un client SSH (ho un file chiave privata .ppk per questo server)

C = MySql Database server in esecuzione su Linux

Posso eseguire con successo query da A (php) su C (Mysql) e restituire i risultati. Ma ora sto cercando di eseguire comandi linux su B da A.

Per esempio.

Ho uno script che gira su B e vorrei eseguire un command da A (php) per mostrare lo stato dello script.

Nella row di command, fare ciò è semplice: lo stato ./SomeScript

Ma voglio mostrare lo stato di questo script nel sito web di hosting sul server A.

Anche solo controllare il tempo di attività del server B sul server A.

È in each modo ansible. ho googlato per sempre, come sembra, ma non sto arrivando da nessuna parte, non troppo graduale se la connessione è sicura o less in quanto si tratta di una networking chiusa senza accesso esterno a questa networking.

Qualsiasi consiglio sarebbe molto apprezzato.

Grazie

Esegui comandi SSH tramite PHP sul server A sul server B.

Ecco come eseguire i comandi ssh con la row di command in linux: http://www.youtube.com/watch?NR=1&feature=fvwp&v=YLqqdQZHzsU

Per eseguire comandi su linux con PHP usa il command exec () .

Spero che questo ti faccia iniziare guardando nella giusta direzione.

Guarda questi due post per automatizzare la richiesta della password

Ecco un rapido esempio con codice non funzionante per farti pensare:

 <?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>'; ?> 

Il stream consigliato è eseguire un command sul server A su SSH sul server B