Foros del Web » Programando para Internet » PHP »

Ejecutar Comando LINUX DESDE PHP

Estas en el tema de Ejecutar Comando LINUX DESDE PHP en el foro de PHP en Foros del Web. Estimados... El comando que quiere ejecutare es el siguiente: ssh usuario(arroba)xxx.yy.zzz.wwsh archivo.sh Donde usuario es un usuario que esta en el servidor (linux) donde estoy ...
  #1 (permalink)  
Antiguo 20/03/2009, 08:30
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Ejecutar Comando LINUX DESDE PHP

Estimados...
El comando que quiere ejecutare es el siguiente:
ssh usuario(arroba)xxx.yy.zzz.wwsh archivo.sh
Donde usuario es un usuario que esta en el servidor (linux) donde estoy ejecutando el script y tambien esta en el servidor de IP: xxx.yy.zzz.ww.

O sea lo que quiero hacer es ejecutar ssh en un servidor remoto para que me ejecute el archivo archivo.sh.

Si lo hago por consola me ejecuta lo mas bien pero desde web no me deja hacerlo me da error, otros comandos si me andan como el ls y otros...

ACA VA EL CODIGO:

$command = 'ssh usuario(arroba)xxx.yy.zzz.ww sh archivo.sh';
if (exec($command,$status)){
for ($i=0; $i< count($status); $i++){
echo $status[$i] . "<br/>";
}
echo "SE EJECUTO correctamente.";

}else{
echo "<br>ERROR en exec: " . $command . "<br>";
}

SERA QUE EL COMANDO ssh no se puede ejecutar a traves del exec ????
HAY UNA LISTA CON LOS COMANDOS PERMITIDOS ???

Salu2 desde Uruguay
  #2 (permalink)  
Antiguo 20/03/2009, 09:31
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 5 meses
Puntos: 48
Respuesta: Ejecutar Comando LINUX DESDE PHP

Tu PHP y el script "archivo.sh" se encuentran en el mismo servidor??

En caso afirmativo con hacer lo siguiente te valdría

Código PHP:
exec("/ruta/donde/esta/tu/script/archivo.sh"); 
Saludos!
  #3 (permalink)  
Antiguo 20/03/2009, 09:45
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Ejecutar Comando LINUX DESDE PHP

Synkronice: No estan en los mismos servidores...ese es el problema y por lo cual tengo que ejecutar ssh que te permite ejecutar remotamente un comando en otro servidor...
Si yo pongo $command="ssh usuario(arroba)xxx.yy.zzz.ww ls" por ejemplo me lista todos los archivos en el servidor remoto... esto si me funciona desde linea de comandos pero no desde a traves de exec ()...

TAL VEZ no puedo pasarle el comando ssh a exec(), ni a shell_exec() ni a system() he probado con todos...

Agradezco me puedan ayudar...

salu2
  #4 (permalink)  
Antiguo 20/03/2009, 09:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Ejecutar Comando LINUX DESDE PHP

Usa la extensión SSH2 de PHP.

Saludos.
  #5 (permalink)  
Antiguo 20/03/2009, 09:49
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 5 meses
Puntos: 48
Exclamación Respuesta: Ejecutar Comando LINUX DESDE PHP

Si te funciona...

Código PHP:
$command="ssh usuario(arroba)xxx.yy.zzz.ww ls" 
prueba con...

Código PHP:
$command="ssh usuario(arroba)xxx.yy.zzz.ww /ruta/donde/esta/tu/script/archivo.sh" 
y que el script "archivo.sh" posea permisos de ejecucion para el usuario que se loguea por ssh.

Saludos!
  #6 (permalink)  
Antiguo 20/03/2009, 10:08
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
No tengo SSH y me fue imposible instalarlo y que funcionara en PHP4 pero eso es tema aparte...
Voy a probar lo que sugieres synkronice y te cuento

Creo que puede ser porque cuando lo hago por linea de comando me pide el password al servidor que me voy a conectar via ssh...se lo pongo y no pasa nada...el tema que desde web no le puedo poner la contraseña...como hago??? para que no me pida, puedo pasarle ese parametro via exec ???

Última edición por GatorV; 20/03/2009 a las 10:26
  #7 (permalink)  
Antiguo 20/03/2009, 10:13
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 5 meses
Puntos: 48
Respuesta: Ejecutar Comando LINUX DESDE PHP

Creo que no puedes autologarte utilizando solo el comando ssh. Confirmalo en el foro de sistemas operativos linux o usando "man ssh" (yo acabo de hacerlo y parace ser que no).

Plan B:

El servidor donde reside el script "archivo.sh" posee servidor web con PHP?

Saludos!
  #8 (permalink)  
Antiguo 20/03/2009, 10:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Ejecutar Comando LINUX DESDE PHP

Lo mejor es que crees un Shell Script que haga ese trabajo, y el Shell Script lo llames desde la linea de comandos.

Saludos.
  #9 (permalink)  
Antiguo 20/03/2009, 11:51
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Ejecutar Comando LINUX DESDE PHP

Synkronice: No no tiene es solo un servidor con la base oracle sin servidor apache.
Creo que tienes razon GatorV lo mejor es hacer un shell que haga ese trabajo...
tal vez usando expect y eso puedo arreglarmelas para que no pida contraseña y eso se transparente al usuario via web...
Pero eso de hacer el shell y que funcione es otro tema...le voy a empezar a meter y cualquier cosa pregunto en el foro de linux...
Por lo tanto doy el tema como cerrado...y agradezco su participacion...
Salu2 y otra vez gracias...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:48.