Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Guardar salida de system en un fichero

Estas en el tema de Guardar salida de system en un fichero en el foro de PHP en Foros del Web. Hola, tengo un problema y es que necesito ejecutar un comando de shell desde php y guardar el resultado obtenido en un fichero y lo ...
  #1 (permalink)  
Antiguo 30/05/2015, 07:00
 
Fecha de Ingreso: febrero-2015
Mensajes: 56
Antigüedad: 9 años, 9 meses
Puntos: 1
Pregunta Guardar salida de system en un fichero

Hola, tengo un problema y es que necesito ejecutar un comando de shell desde php y guardar el resultado obtenido en un fichero y lo estaba haciendo con ">" pero no me funciona,por ejemplo:

system("ls > salida.txt");


pero por lo visto no funciona.
Por lo que he leído system solo muestra por pantalla pero de esa forma ni se muestra (que no lo necesito) ni se guarda en el fichero.

Alguien tiene alguna solución?

Muchas gracias.
  #2 (permalink)  
Antiguo 30/05/2015, 08:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Guardar salida de system en un fichero

¿Probaste alguna otra alternativa como exec()?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/05/2015, 08:10
 
Fecha de Ingreso: febrero-2015
Mensajes: 56
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Guardar salida de system en un fichero

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Probaste alguna otra alternativa como exec()?
Si lo he probado y tampoco funciona. También tengo el problema de que no puedo ejecutar dos comandos en un mismo sytem
  #4 (permalink)  
Antiguo 30/05/2015, 08:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Guardar salida de system en un fichero

Es curioso, porque a mi sí me sirve lo siguiente:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $status = -1;
  4. $retval = [];
  5.  
  6. $cmd = exec('ls $HOME', $retval, $status);
  7.  
  8. var_dump($cmd);
  9. var_dump($retval);
  10. var_dump($status);

Y bueno, queda decir que no hace falta enviar la salida hacia un archivo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 30/05/2015, 11:48
 
Fecha de Ingreso: febrero-2015
Mensajes: 56
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Guardar salida de system en un fichero

Cita:
Iniciado por pateketrueke Ver Mensaje
Es curioso, porque a mi sí me sirve lo siguiente:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $status = -1;
  4. $retval = [];
  5.  
  6. $cmd = exec('ls $HOME', $retval, $status);
  7.  
  8. var_dump($cmd);
  9. var_dump($retval);
  10. var_dump($status);

Y bueno, queda decir que no hace falta enviar la salida hacia un archivo.

Pues a mi ese código me muestra por pantalla un array con todo y yo necesito que se ejecute un comando y se guarde en un fichero.
  #6 (permalink)  
Antiguo 30/05/2015, 13:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Guardar salida de system en un fichero

Cita:
Pues a mi ese código me muestra por pantalla un array con todo y yo necesito que se ejecute un comando y se guarde en un fichero.
Perfecto, ¿y qué tan difícil es tomar ese array y guardarlo en un archivo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 30/05/2015, 15:47
Avatar de Apolo_13  
Fecha de Ingreso: mayo-2015
Mensajes: 40
Antigüedad: 9 años, 6 meses
Puntos: 4
Respuesta: Guardar salida de system en un fichero

¿lo estas corriendo en un "hosting"??
si es así, es normal que no te funcione el comando "exec()". El hosting es un ordenador compartido por muchos users, y como el lógico el proovedor no va a dejar que ejecutes comandos en dicho pc.
Que yo sepa están desabilitados por razones de seguridad. Solo te funcionará en servidores privados.
  #8 (permalink)  
Antiguo 31/05/2015, 03:08
 
Fecha de Ingreso: febrero-2015
Mensajes: 56
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Guardar salida de system en un fichero

Cita:
Iniciado por pateketrueke Ver Mensaje
Perfecto, ¿y qué tan difícil es tomar ese array y guardarlo en un archivo?

Pues si me indicaras como te lo agradecería la verdad
  #9 (permalink)  
Antiguo 31/05/2015, 03:08
 
Fecha de Ingreso: febrero-2015
Mensajes: 56
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Guardar salida de system en un fichero

Cita:
Iniciado por Apolo_13 Ver Mensaje
¿lo estas corriendo en un "hosting"??
si es así, es normal que no te funcione el comando "exec()". El hosting es un ordenador compartido por muchos users, y como el lógico el proovedor no va a dejar que ejecutes comandos en dicho pc.
Que yo sepa están desabilitados por razones de seguridad. Solo te funcionará en servidores privados.

No, lo tengo en mi máquina virtual, por eso seguro que no es
  #10 (permalink)  
Antiguo 31/05/2015, 07:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Guardar salida de system en un fichero

Así puedes escribir un array en un archivo, linea por linea:
Código PHP:
Ver original
  1. $array = [1, 2, 3];
  2. file_put_contents('archivo.txt', join("\n", $array));

Cita:
Pues si me indicaras como te lo agradecería la verdad
Bueno, esa es tu responsabilidad.

Si no tienes ni la menor idea de cómo hacer cosas simples deberías consultar el manual.

Acá procuramos orientar sobre problemas técnicos específicos, las cosas básicas ya deberías saberlas hacer.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: bash, shell, system
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 16:37.